{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Chapter 6 - Exercises"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Applied Questions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:11:54.219109Z",
     "start_time": "2023-10-07T12:11:53.633755Z"
    }
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "\n",
    "from sklearn.decomposition import PCA\n",
    "from sklearn.cross_decomposition import PLSRegression\n",
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "from sklearn.linear_model import LinearRegression,Lasso,LassoCV,RidgeCV\n",
    "from sklearn.metrics import mean_squared_error\n",
    "from sklearn.model_selection import cross_val_score,train_test_split\n",
    "from sklearn.metrics import r2_score\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "import statsmodels.api as sm\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 8. In this exercise, we will generate simulated data, and will then use this data to perform best subset selection.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (a) Use the rnorm() function to generate a predictor X of length n = 100, as well as a noise vector  of length n = 100.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:11:54.798786Z",
     "start_time": "2023-10-07T12:11:53.656416Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Size of X is  100\n"
     ]
    }
   ],
   "source": [
    "np.random.seed(1)\n",
    "\n",
    "X = np.random.randn(100)\n",
    "eps = np.random.randn(100)\n",
    "print('Size of X is ',len(X))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (b) Generate a response vector Y of length n = 100 according to the model\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Y = β0 + β1X + β2X2 + β3X3 + eps"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:11:54.840990Z",
     "start_time": "2023-10-07T12:11:53.677465Z"
    }
   },
   "outputs": [],
   "source": [
    "# weights are of our choice\n",
    "beta = [3,4,2,1]\n",
    "Y = beta[0] + beta[1]*X + beta[2]*X**2 + beta[3]*X**3 + eps"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (c) Use the regsubsets() function to perform best subset selection in order to choose the best model containing the predictors X, X2,...,X10. What is the best model obtained according to Cp, BIC, and adjusted R2? Show some plots to provide evidence for your answer, and report the coefficients of the best model obtained.\n",
    "\n",
    " \n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:11:55.766373Z",
     "start_time": "2023-10-07T12:11:53.701351Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "         X1        X2        X3        X4         X5         X6         X7  \\\n0  1.624345  2.638498  4.285832  6.961671  11.308158  18.368354  29.836551   \n1 -0.611756  0.374246 -0.228947  0.140060  -0.085683   0.052417  -0.032066   \n2 -0.528172  0.278965 -0.147342  0.077822  -0.041103   0.021710  -0.011466   \n3 -1.072969  1.151262 -1.235268  1.325403  -1.422116   1.525886  -1.637228   \n4  0.865408  0.748930  0.648130  0.560897   0.485404   0.420073   0.363534   \n\n          X8         X9         X10  \n0  48.464863  78.723675  127.874436  \n1   0.019617  -0.012001    0.007342  \n2   0.006056  -0.003199    0.001689  \n3   1.756694  -1.884878    2.022415  \n4   0.314605   0.272262    0.235617  ",
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>X1</th>\n      <th>X2</th>\n      <th>X3</th>\n      <th>X4</th>\n      <th>X5</th>\n      <th>X6</th>\n      <th>X7</th>\n      <th>X8</th>\n      <th>X9</th>\n      <th>X10</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>1.624345</td>\n      <td>2.638498</td>\n      <td>4.285832</td>\n      <td>6.961671</td>\n      <td>11.308158</td>\n      <td>18.368354</td>\n      <td>29.836551</td>\n      <td>48.464863</td>\n      <td>78.723675</td>\n      <td>127.874436</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>-0.611756</td>\n      <td>0.374246</td>\n      <td>-0.228947</td>\n      <td>0.140060</td>\n      <td>-0.085683</td>\n      <td>0.052417</td>\n      <td>-0.032066</td>\n      <td>0.019617</td>\n      <td>-0.012001</td>\n      <td>0.007342</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>-0.528172</td>\n      <td>0.278965</td>\n      <td>-0.147342</td>\n      <td>0.077822</td>\n      <td>-0.041103</td>\n      <td>0.021710</td>\n      <td>-0.011466</td>\n      <td>0.006056</td>\n      <td>-0.003199</td>\n      <td>0.001689</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>-1.072969</td>\n      <td>1.151262</td>\n      <td>-1.235268</td>\n      <td>1.325403</td>\n      <td>-1.422116</td>\n      <td>1.525886</td>\n      <td>-1.637228</td>\n      <td>1.756694</td>\n      <td>-1.884878</td>\n      <td>2.022415</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>0.865408</td>\n      <td>0.748930</td>\n      <td>0.648130</td>\n      <td>0.560897</td>\n      <td>0.485404</td>\n      <td>0.420073</td>\n      <td>0.363534</td>\n      <td>0.314605</td>\n      <td>0.272262</td>\n      <td>0.235617</td>\n    </tr>\n  </tbody>\n</table>\n</div>"
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "poly = PolynomialFeatures(10,include_bias=False)\n",
    "predictors = poly.fit_transform(pd.DataFrame({'X':X}))\n",
    "predictors = pd.DataFrame(predictors)\n",
    "col = ['X' + str(i) for i in range(1,11)]\n",
    "predictors.columns = col\n",
    "predictors.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:11:56.125291Z",
     "start_time": "2023-10-07T12:11:53.714086Z"
    }
   },
   "outputs": [],
   "source": [
    "def fit_linear_reg(X,Y):\n",
    "    #Fit linear regression model and return RSS and R squared values\n",
    "    X = sm.add_constant(X)\n",
    "    model = sm.OLS(Y,X).fit()\n",
    "    return model.ssr,model.rsquared,model\n",
    "    \n",
    "\n",
    "from tqdm.notebook import tnrange, tqdm_notebook\n",
    "from itertools import combinations\n",
    "\n",
    "def run_subset_selection(X,y):\n",
    "    #Initialization variables\n",
    "    RSS_list, R_squared_list, feature_list = [],[],[]\n",
    "    aic_list,bic_list,adj_r_squared_list = [],[],[]\n",
    "    numb_features = []\n",
    "\n",
    "    #Looping over k = 1 to k = 11 features in X\n",
    "    for k in tnrange(1,len(X.columns) + 1, desc = 'Loop...'):\n",
    "        best_features = None\n",
    "        best_RSS = None\n",
    "        best_r2 = 0\n",
    "        best_model = None\n",
    "        \n",
    "        #Looping over all possible combinations: \n",
    "        for combo in combinations(X.columns,k):\n",
    "            tmp_result = fit_linear_reg(X[list(combo)],Y)   #Store temp result  \n",
    "            r2 = tmp_result[1]\n",
    "            if r2 > best_r2:\n",
    "                best_features = combo\n",
    "                best_RSS = tmp_result[0]\n",
    "                best_r2 = tmp_result[1]\n",
    "                best_model = tmp_result[2]\n",
    "                \n",
    "        RSS_list.append(best_RSS)\n",
    "        R_squared_list.append(best_r2)\n",
    "        feature_list.append(best_features)\n",
    "        numb_features.append(len(best_features))\n",
    "        aic_list.append(best_model.aic)\n",
    "        bic_list.append(best_model.bic)\n",
    "        adj_r_squared_list.append(best_model.rsquared_adj)\n",
    "        \n",
    "    #Store in DataFrame\n",
    "    df = pd.DataFrame({'numb_features': numb_features,'RSS': RSS_list, 'R_squared':R_squared_list,\n",
    "                      'AIC':aic_list,'BIC':bic_list,'adj_r2':adj_r_squared_list,'features':feature_list})\n",
    "    return df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:11:59.997269Z",
     "start_time": "2023-10-07T12:11:53.720390Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "Loop...:   0%|          | 0/10 [00:00<?, ?it/s]",
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "361470488df24a92bcfdab9e8b9be1b1"
      }
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "best_subset_results = run_subset_selection(predictors,Y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:11:59.999675Z",
     "start_time": "2023-10-07T12:11:54.680975Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "   numb_features         RSS  R_squared         AIC         BIC    adj_r2  \\\n0              1  771.612854   0.819633  492.118982  497.329322  0.817793   \n1              2  329.558323   0.922965  409.046022  416.861533  0.921376   \n2              3   84.811563   0.980175  275.313877  285.734557  0.979556   \n3              4   79.800246   0.981346  271.223347  284.249198  0.980561   \n4              5   79.446732   0.981429  272.779363  288.410385  0.980441   \n5              6   77.901340   0.981790  272.815004  291.051195  0.980616   \n6              7   77.535196   0.981876  274.343886  295.185248  0.980497   \n7              8   77.090698   0.981980  275.768950  299.215482  0.980396   \n8              9   76.794677   0.982049  277.384221  303.435923  0.980254   \n9             10   76.498124   0.982118  278.997310  307.654182  0.980109   \n\n                                    features  \n0                                      (X1,)  \n1                                   (X1, X2)  \n2                               (X1, X2, X3)  \n3                           (X1, X2, X3, X6)  \n4                      (X1, X2, X3, X8, X10)  \n5                   (X1, X2, X5, X7, X8, X9)  \n6              (X1, X2, X3, X5, X7, X9, X10)  \n7           (X1, X2, X3, X4, X5, X6, X7, X9)  \n8      (X1, X2, X4, X5, X6, X7, X8, X9, X10)  \n9  (X1, X2, X3, X4, X5, X6, X7, X8, X9, X10)  ",
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>numb_features</th>\n      <th>RSS</th>\n      <th>R_squared</th>\n      <th>AIC</th>\n      <th>BIC</th>\n      <th>adj_r2</th>\n      <th>features</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>1</td>\n      <td>771.612854</td>\n      <td>0.819633</td>\n      <td>492.118982</td>\n      <td>497.329322</td>\n      <td>0.817793</td>\n      <td>(X1,)</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>2</td>\n      <td>329.558323</td>\n      <td>0.922965</td>\n      <td>409.046022</td>\n      <td>416.861533</td>\n      <td>0.921376</td>\n      <td>(X1, X2)</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>3</td>\n      <td>84.811563</td>\n      <td>0.980175</td>\n      <td>275.313877</td>\n      <td>285.734557</td>\n      <td>0.979556</td>\n      <td>(X1, X2, X3)</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>4</td>\n      <td>79.800246</td>\n      <td>0.981346</td>\n      <td>271.223347</td>\n      <td>284.249198</td>\n      <td>0.980561</td>\n      <td>(X1, X2, X3, X6)</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>5</td>\n      <td>79.446732</td>\n      <td>0.981429</td>\n      <td>272.779363</td>\n      <td>288.410385</td>\n      <td>0.980441</td>\n      <td>(X1, X2, X3, X8, X10)</td>\n    </tr>\n    <tr>\n      <th>5</th>\n      <td>6</td>\n      <td>77.901340</td>\n      <td>0.981790</td>\n      <td>272.815004</td>\n      <td>291.051195</td>\n      <td>0.980616</td>\n      <td>(X1, X2, X5, X7, X8, X9)</td>\n    </tr>\n    <tr>\n      <th>6</th>\n      <td>7</td>\n      <td>77.535196</td>\n      <td>0.981876</td>\n      <td>274.343886</td>\n      <td>295.185248</td>\n      <td>0.980497</td>\n      <td>(X1, X2, X3, X5, X7, X9, X10)</td>\n    </tr>\n    <tr>\n      <th>7</th>\n      <td>8</td>\n      <td>77.090698</td>\n      <td>0.981980</td>\n      <td>275.768950</td>\n      <td>299.215482</td>\n      <td>0.980396</td>\n      <td>(X1, X2, X3, X4, X5, X6, X7, X9)</td>\n    </tr>\n    <tr>\n      <th>8</th>\n      <td>9</td>\n      <td>76.794677</td>\n      <td>0.982049</td>\n      <td>277.384221</td>\n      <td>303.435923</td>\n      <td>0.980254</td>\n      <td>(X1, X2, X4, X5, X6, X7, X8, X9, X10)</td>\n    </tr>\n    <tr>\n      <th>9</th>\n      <td>10</td>\n      <td>76.498124</td>\n      <td>0.982118</td>\n      <td>278.997310</td>\n      <td>307.654182</td>\n      <td>0.980109</td>\n      <td>(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10)</td>\n    </tr>\n  </tbody>\n</table>\n</div>"
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "best_subset_results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.000154Z",
     "start_time": "2023-10-07T12:11:54.687200Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The best model according to adjR2 is model having features -  6\n",
      "The best model according to AIC is model having features -  4\n",
      "The best model according to BIC is model having features -  4\n"
     ]
    }
   ],
   "source": [
    "print('The best model according to adjR2 is model having features - ',\n",
    "      best_subset_results.sort_values('adj_r2',ascending=False)['numb_features'].values[0],\n",
    "     )\n",
    "print('The best model according to AIC is model having features - ',\n",
    "      best_subset_results.sort_values('AIC',ascending=True)['numb_features'].values[0])\n",
    "print('The best model according to BIC is model having features - ',\n",
    "      best_subset_results.sort_values('BIC',ascending=True)['numb_features'].values[0])\n",
    "\n",
    "# we can see that using different metrics can give us different outcomes, althuohg what we will observe is that \n",
    "# AIC and BIC will give us simialr results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.338874Z",
     "start_time": "2023-10-07T12:11:54.734782Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 1800x400 with 3 Axes>",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABbkAAAGDCAYAAAAGbB1hAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAADM7UlEQVR4nOzdd3hUVfoH8O/0zKQXSCAgCCT0kIQmIkTAEKSXACpiBZUqqyK4SJNFUAT3h8oudRGFVXoXWEAsGEok9GICCCSB9DJpM5ny+2MyAzEBkjCZO+X7eZ55NPfeuXnPmRvOue+ce47IaDQaQURERERERERERETkgMRCB0BEREREREREREREVFNMchMRERERERERERGRw2KSm4iIiIiIiIiIiIgcFpPcREREREREREREROSwmOQmIiIiIiIiIiIiIofFJDcREREREREREREROSwmuYmIiIiIiIiIiIjIYTHJTUREREREREREREQOi0luIiIiIiIiIiIiInJYTHITubj3338fzZs3x4oVKyrs27p1K5o3b47k5ORy2w0GAzZt2oRRo0ahc+fOiIyMxJAhQ7Bu3TpotVpbhU5EROS0Ro8ejebNm5d7dejQAS+99BJOnDhhOY5tNRERCeVB95LTp08v14a1aNEC4eHh6N+/P7766itoNJoHnvuv7dv92juzL774As2bNy+3raioCF988QX69u2LsLAwtG/fHs899xw2btwIg8EAAEhOTq7Q3lb22rp1KwCgZ8+eDzxu8uTJlt//12NbtmyJDh064Pnnn8eOHTseWr/Hjx+v9He0bdsWTz/9ND744ANkZmaWe8+tW7cwZcoUPPXUU5byxsXFPfR3WUPPnj0xffp0m/wuospIhQ6AiIRTUFCAAwcOIDQ0FBs3bsTYsWMhEoke+J7i4mK89dZbOHPmDJ5//nmMGTMGMpkMx48fx2effYaffvoJ//rXvyCXy21UCiIiIufUqlUrzJ49GwCg1+uRk5OD//73v3j99dexdetWhISEVPo+ttVERFTbqnIvWadOHXz55ZcATF++qtVqnDx5Ev/6179w9OhR/Oc//4FCoaiV+IxGI9566y1cvXoVY8eORfPmzaHRaPDrr79i1qxZSExMxIwZM1C3bl18//33lvdlZGRg4sSJGDduHJ5++mnL9scee8zy/1FRURg/fnylv9fHx6fcz/ceq9PpkJOTg7179+L999/H5cuXMW3atIeWZdasWWjdurXl58LCQsTHx2PlypW4du2aJf7c3Fy8+OKL8PLywt///nd4eHhg8+bNeO211/D111+jU6dOD/1dRI6MSW4iF7Znzx7o9Xp8+OGHeOmll/Drr7+iW7duD3zPggULcOrUKXzzzTcIDw+3bH/qqafQqlUrTJkyBevXr8err75ay9ETERE5Nw8Pj3JtLQA8+eST6NKlC7Zu3XrfG2O21UREVNuqci8pl8srtGNRUVFo164dJk6ciDVr1mDcuHG1Et/vv/+O48ePY/Xq1Xjqqacs259++mmIxWJ8++23eOONN1CnTp1yMZpHij/22GMVYjfz8/O7776qHBsdHQ1/f3+sWbMGzzzzDNq3b//AczRr1qzCObp27QqdTocVK1YgKSkJzZo1w7Zt25CVlYWNGzciMDAQgKntHzRoEFavXs0kNzk9TldC5MK2bNmCzp07o3Pnznj88cfx3XffPfD47OxsbNmyBcOGDau0UX/22Wfx+uuvIygoqJYiJiIicm1KpRIKheK+T16xrSYiIluo7r3kvaKjoxEWFlat91RXRkYGANOI7r964YUX8Le//e2hTzHXpsmTJ0Mulz9SHXh6epb7OTAwEK+88oolwQ0AYrEYjz32GG7evFnpOU6dOoXmzZvj4MGD5bZfvXoVzZs3xw8//ADAlPx///338dRTT6F169bo0qUL3n//feTk5FR6XvM0MOZpXsymT5+Onj17ltt28OBBDB06FG3btkXXrl3xj3/8A0VFRZb9Go0Gc+fORffu3dGmTRv06dMHa9aseUjtkCtikpvIRV29ehVnzpzBkCFDAABDhw7Fjz/+iLS0tPu+Jy4uDjqdDj169LjvMe+//z6effZZq8dLRETkaoxGI3Q6HXQ6HUpLS5GRkYElS5ZAq9Vi2LBhlb6HbTUREdW2mtxL/tVTTz2FO3fuICUlpVZi7NSpE1QqFd555x0sWrQIx48fR0lJCQCgcePGGDt2LAICAmp07nvb57++qsrLywthYWH4/fffH3qswWAo9zvy8vJw6NAhrF69Gm3btkWTJk0AAH379sV7771X7r25ubk4ceLEfac4i4yMRKNGjbB3795y23ft2gVPT0/07NkTxcXFeOmll3D16lXMnj0bq1evxosvvojdu3djyZIlVS5zZXbt2oUJ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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Since we are going to need to plot these many times, lets make a functions to save us the trouble of writing this again and again\n",
    "def plot_results(df):\n",
    "    fig,(a1,a2,a3) = plt.subplots(1,3,figsize = (18,4))\n",
    "    a1.plot(df['numb_features'],df['AIC'],marker = 'o')\n",
    "    a1.axhline(y = min(df['AIC']),linestyle = 'dashed',linewidth = 0.8,color = 'black')\n",
    "    a1.axvline(x =  df.sort_values('AIC',ascending=True)['numb_features'].values[0],color = 'black',\n",
    "               linestyle = 'dashed',linewidth = 0.8)\n",
    "    a1.set_title('AIC')\n",
    "    a1.set_xlabel('Number of features')\n",
    "    a1.set_ylabel('AIC values')\n",
    "\n",
    "    a2.plot(df['numb_features'],df['BIC'],marker = 'o')\n",
    "    a2.axhline(y = min(df['BIC']),linestyle = 'dashed',linewidth = 0.8,color = 'black')\n",
    "    a2.axvline(x =  df.sort_values('BIC',ascending=True)['numb_features'].values[0],color = 'black',\n",
    "               linestyle = 'dashed',linewidth = 0.8)\n",
    "    a2.set_title('BIC')\n",
    "    a2.set_xlabel('Number of features')\n",
    "    a2.set_ylabel('BIC values')\n",
    "\n",
    "    a3.plot(df['numb_features'],df['adj_r2'],marker=  'o')\n",
    "    a3.axhline(y = max(df['adj_r2']),linestyle = 'dashed',linewidth = 0.8,color = 'black')\n",
    "    a3.axvline(x =  df.sort_values('adj_r2',ascending=False)['numb_features'].values[0],color = 'black',\n",
    "               linestyle = 'dashed',linewidth = 0.8)\n",
    "    a3.set_title('ADJUSTED R2 values')\n",
    "    a3.set_xlabel('Number of features')\n",
    "    a3.set_ylabel('Adj R2')\n",
    "    \n",
    "plot_results(best_subset_results)    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.339271Z",
     "start_time": "2023-10-07T12:11:55.134700Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Features choosen by AIC  ['X1', 'X2', 'X3', 'X6']\n",
      "Features choosen by BIC  ['X1', 'X2', 'X3', 'X6']\n",
      "Features choosen by adj_r2  ['X1', 'X2', 'X3', 'X5', 'X7', 'X9', 'X10']\n"
     ]
    }
   ],
   "source": [
    "print('Features choosen by AIC ',list(best_subset_results['features'][3]))\n",
    "print('Features choosen by BIC ',list(best_subset_results['features'][3]))\n",
    "print('Features choosen by adj_r2 ',list(best_subset_results['features'][6]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (d) Repeat (c), using forward stepwise selection and also using backwards stepwise selection. How does your answer compare to the results in (c)?\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.339374Z",
     "start_time": "2023-10-07T12:11:55.144385Z"
    }
   },
   "outputs": [],
   "source": [
    "def forward_stepwise_selection(data,target):\n",
    "    total_features = [[]]\n",
    "    list_r2 = []\n",
    "    list_adj_r2 = []\n",
    "    list_aic,list_bic = [],[]\n",
    "    len_features = []\n",
    "    remaining_features = [col for col in data.columns if not col == target]\n",
    "    for i in range(1,len(data.columns)):\n",
    "        best_score = 0;best_feature = None\n",
    "        best_model = None\n",
    "        for feature in remaining_features:\n",
    "\n",
    "            X = total_features[i-1] + [feature]\n",
    "            model = sm.OLS(data[target],sm.add_constant(data[X])).fit()\n",
    "            score = model.rsquared\n",
    "#             print('For len {}, feature - {}, score is {}'.format(i,feature,score))\n",
    "\n",
    "            if score > best_score:\n",
    "                best_score = score\n",
    "                best_feature = feature\n",
    "                best_model = model\n",
    "                \n",
    "        total_features.append(total_features[i-1] + [best_feature])\n",
    "        remaining_features.remove(best_feature)\n",
    "        list_r2.append(best_model.rsquared)\n",
    "        list_adj_r2.append(best_model.rsquared_adj)\n",
    "        list_aic.append(best_model.aic)\n",
    "        list_bic.append(best_model.bic)\n",
    "        len_features.append(len(total_features[-1]))\n",
    "        \n",
    "    return pd.DataFrame({'numb_features': len_features, 'R_squared':list_r2,\n",
    "                      'AIC':list_aic,'BIC':list_bic,'adj_r2':list_adj_r2,'features':total_features[1:]})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.339855Z",
     "start_time": "2023-10-07T12:11:55.156376Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "         X1        X2        X3        X4         X5         X6         X7  \\\n0  1.624345  2.638498  4.285832  6.961671  11.308158  18.368354  29.836551   \n1 -0.611756  0.374246 -0.228947  0.140060  -0.085683   0.052417  -0.032066   \n2 -0.528172  0.278965 -0.147342  0.077822  -0.041103   0.021710  -0.011466   \n3 -1.072969  1.151262 -1.235268  1.325403  -1.422116   1.525886  -1.637228   \n4  0.865408  0.748930  0.648130  0.560897   0.485404   0.420073   0.363534   \n\n          X8         X9         X10          Y  \n0  48.464863  78.723675  127.874436  18.613080  \n1   0.019617  -0.012001    0.007342   2.297027  \n2   0.006056  -0.003199    0.001689   1.701394  \n3   1.756694  -1.884878    2.022415   0.368960  \n4   0.314605   0.272262    0.235617   7.512709  ",
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>X1</th>\n      <th>X2</th>\n      <th>X3</th>\n      <th>X4</th>\n      <th>X5</th>\n      <th>X6</th>\n      <th>X7</th>\n      <th>X8</th>\n      <th>X9</th>\n      <th>X10</th>\n      <th>Y</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>1.624345</td>\n      <td>2.638498</td>\n      <td>4.285832</td>\n      <td>6.961671</td>\n      <td>11.308158</td>\n      <td>18.368354</td>\n      <td>29.836551</td>\n      <td>48.464863</td>\n      <td>78.723675</td>\n      <td>127.874436</td>\n      <td>18.613080</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>-0.611756</td>\n      <td>0.374246</td>\n      <td>-0.228947</td>\n      <td>0.140060</td>\n      <td>-0.085683</td>\n      <td>0.052417</td>\n      <td>-0.032066</td>\n      <td>0.019617</td>\n      <td>-0.012001</td>\n      <td>0.007342</td>\n      <td>2.297027</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>-0.528172</td>\n      <td>0.278965</td>\n      <td>-0.147342</td>\n      <td>0.077822</td>\n      <td>-0.041103</td>\n      <td>0.021710</td>\n      <td>-0.011466</td>\n      <td>0.006056</td>\n      <td>-0.003199</td>\n      <td>0.001689</td>\n      <td>1.701394</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>-1.072969</td>\n      <td>1.151262</td>\n      <td>-1.235268</td>\n      <td>1.325403</td>\n      <td>-1.422116</td>\n      <td>1.525886</td>\n      <td>-1.637228</td>\n      <td>1.756694</td>\n      <td>-1.884878</td>\n      <td>2.022415</td>\n      <td>0.368960</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>0.865408</td>\n      <td>0.748930</td>\n      <td>0.648130</td>\n      <td>0.560897</td>\n      <td>0.485404</td>\n      <td>0.420073</td>\n      <td>0.363534</td>\n      <td>0.314605</td>\n      <td>0.272262</td>\n      <td>0.235617</td>\n      <td>7.512709</td>\n    </tr>\n  </tbody>\n</table>\n</div>"
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = pd.concat([predictors,pd.DataFrame(Y,columns = ['Y'])],axis = 1)\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.339967Z",
     "start_time": "2023-10-07T12:11:55.165108Z"
    }
   },
   "outputs": [],
   "source": [
    "result_fwd = forward_stepwise_selection(data,'Y')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.340314Z",
     "start_time": "2023-10-07T12:11:55.224329Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "   numb_features  R_squared         AIC         BIC    adj_r2  \\\n0              1   0.819633  492.118982  497.329322  0.817793   \n1              2   0.922965  409.046022  416.861533  0.921376   \n2              3   0.980175  275.313877  285.734557  0.979556   \n3              4   0.981346  271.223347  284.249198  0.980561   \n4              5   0.981413  272.863273  288.494294  0.980425   \n5              6   0.981497  274.414314  292.650506  0.980303   \n6              7   0.981718  275.210066  296.051427  0.980327   \n7              8   0.981722  277.190336  300.636868  0.980115   \n8              9   0.981743  279.076446  305.128148  0.979917   \n9             10   0.982118  278.997310  307.654182  0.980109   \n\n                                    features  \n0                                       [X1]  \n1                                   [X1, X2]  \n2                               [X1, X2, X3]  \n3                           [X1, X2, X3, X6]  \n4                      [X1, X2, X3, X6, X10]  \n5                  [X1, X2, X3, X6, X10, X4]  \n6              [X1, X2, X3, X6, X10, X4, X8]  \n7          [X1, X2, X3, X6, X10, X4, X8, X9]  \n8      [X1, X2, X3, X6, X10, X4, X8, X9, X7]  \n9  [X1, X2, X3, X6, X10, X4, X8, X9, X7, X5]  ",
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>numb_features</th>\n      <th>R_squared</th>\n      <th>AIC</th>\n      <th>BIC</th>\n      <th>adj_r2</th>\n      <th>features</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>1</td>\n      <td>0.819633</td>\n      <td>492.118982</td>\n      <td>497.329322</td>\n      <td>0.817793</td>\n      <td>[X1]</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>2</td>\n      <td>0.922965</td>\n      <td>409.046022</td>\n      <td>416.861533</td>\n      <td>0.921376</td>\n      <td>[X1, X2]</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>3</td>\n      <td>0.980175</td>\n      <td>275.313877</td>\n      <td>285.734557</td>\n      <td>0.979556</td>\n      <td>[X1, X2, X3]</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>4</td>\n      <td>0.981346</td>\n      <td>271.223347</td>\n      <td>284.249198</td>\n      <td>0.980561</td>\n      <td>[X1, X2, X3, X6]</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>5</td>\n      <td>0.981413</td>\n      <td>272.863273</td>\n      <td>288.494294</td>\n      <td>0.980425</td>\n      <td>[X1, X2, X3, X6, X10]</td>\n    </tr>\n    <tr>\n      <th>5</th>\n      <td>6</td>\n      <td>0.981497</td>\n      <td>274.414314</td>\n      <td>292.650506</td>\n      <td>0.980303</td>\n      <td>[X1, X2, X3, X6, X10, X4]</td>\n    </tr>\n    <tr>\n      <th>6</th>\n      <td>7</td>\n      <td>0.981718</td>\n      <td>275.210066</td>\n      <td>296.051427</td>\n      <td>0.980327</td>\n      <td>[X1, X2, X3, X6, X10, X4, X8]</td>\n    </tr>\n    <tr>\n      <th>7</th>\n      <td>8</td>\n      <td>0.981722</td>\n      <td>277.190336</td>\n      <td>300.636868</td>\n      <td>0.980115</td>\n      <td>[X1, X2, X3, X6, X10, X4, X8, X9]</td>\n    </tr>\n    <tr>\n      <th>8</th>\n      <td>9</td>\n      <td>0.981743</td>\n      <td>279.076446</td>\n      <td>305.128148</td>\n      <td>0.979917</td>\n      <td>[X1, X2, X3, X6, X10, X4, X8, X9, X7]</td>\n    </tr>\n    <tr>\n      <th>9</th>\n      <td>10</td>\n      <td>0.982118</td>\n      <td>278.997310</td>\n      <td>307.654182</td>\n      <td>0.980109</td>\n      <td>[X1, X2, X3, X6, X10, X4, X8, X9, X7, X5]</td>\n    </tr>\n  </tbody>\n</table>\n</div>"
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "result_fwd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.340688Z",
     "start_time": "2023-10-07T12:11:55.230679Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 1800x400 with 3 Axes>",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABbkAAAGDCAYAAAAGbB1hAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAADOP0lEQVR4nOzdeVxU5f4H8M/szDDsKAiapuIugmtmRlqIuS+Yldlt0co1b2XZNbe8pS3a/Vl5b27XvNmt3NfUq2WLuaG4pgZqKaAgIDADzAyz/P4YZpRABTzMmeXzfr3mVZw5c/w+z8zw5XzPc55HYrPZbCAiIiIiIiIiIiIi8kBSsQMgIiIiIiIiIiIiIqotFrmJiIiIiIiIiIiIyGOxyE1EREREREREREREHotFbiIiIiIiIiIiIiLyWCxyExEREREREREREZHHYpGbiIiIiIiIiIiIiDwWi9xERERERERERERE5LFY5CYiIiIiIiIiIiIij8UiNxERERERERERERF5LBa5iXzc66+/jpYtW2LJkiWVnlu/fj1atmyJjIyMCtutVivWrFmDUaNGoVu3bujYsSOGDh2KVatWwWQyuSp0IiIirzV69Gi0bNmywqNz5854+umncejQIed+zNVERCSW251LTps2rUIOa9WqFeLi4jBgwAB8+umnMBqNtz32n/PbrfKdw8cff4yWLVtW2FZSUoKPP/4Y/fr1Q2xsLDp16oTHH38c33zzDaxWKwAgIyOjUr6t6rF+/XoAQO/evW+73+TJk53//p/3bd26NTp37ownnngCmzZtumP/Hjx4sMp/o3379njooYfw5ptvIjc3t8JrLl++jClTpuCBBx5wtnf//v13/LeE0Lt3b0ybNs0l/xZRVeRiB0BE4tHr9di1axdatGiBb775BmPHjoVEIrnta0pLS/HSSy/h+PHjeOKJJzBmzBgoFAocPHgQH374IX744Qf885//hFKpdFEriIiIvFObNm0wa9YsAIDFYsH169fx3//+F88//zzWr1+PmJiYKl/HXE1ERHWtOueS9erVwyeffALAfvFVp9Ph8OHD+Oc//4l9+/bh3//+N1QqVZ3EZ7PZ8NJLL+H8+fMYO3YsWrZsCaPRiJ9//hkzZ85EWloapk+fjvr16+Prr792vu7atWuYOHEixo0bh4ceesi5/Z577nH+f0JCAsaPH1/lvxscHFzh55v3NZvNuH79OrZv347XX38dZ8+exRtvvHHHtsycORNt27Z1/lxcXIyUlBQsXboUFy5ccMZfUFCAp556CoGBgfjb3/4GrVaLtWvX4rnnnsPnn3+Orl273vHfIvJkLHIT+bBt27bBYrHgrbfewtNPP42ff/4ZPXv2vO1r5s2bh6NHj+I///kP4uLinNsfeOABtGnTBlOmTMHq1avx7LPP1nH0RERE3k2r1VbItQBw//33o3v37li/fv0tT4yZq4mIqK5V51xSqVRWymMJCQno0KEDJk6ciBUrVmDcuHF1Et+RI0dw8OBBLF++HA888IBz+0MPPQSpVIovvvgCL7zwAurVq1chRsdI8XvuuadS7A6hoaG3fK46+yYmJiIsLAwrVqzAI488gk6dOt32GM2bN690jB49esBsNmPJkiVIT09H8+bNsWHDBuTl5eGbb75BREQEAHvuHzx4MJYvX84iN3k9TldC5MPWrVuHbt26oVu3brj33nvx1Vdf3Xb//Px8rFu3DsOHD68yqT/66KN4/vnnERkZWUcRExER+Ta1Wg2VSnXLO6+Yq4mIyBVqei55s8TERMTGxtboNTV17do1APYR3X/25JNP4q9//esd72KuS5MnT4ZSqbyrPggICKjwc0REBJ555hlngRsApFIp7rnnHly6dKnKYxw9ehQtW7bE7t27K2w/f/48WrZsiW+//RaAvfj/+uuv44EHHkDbtm3RvXt3vP7667h+/XqVx3VMA+OY5sVh2rRp6N27d4Vtu3fvxrBhw9C+fXv06NEDf//731FSUuJ83mg0Ys6cOXjwwQfRrl079O3bFytWrLhD75AvYpGbyEedP38ex48fx9ChQwEAw4YNw/fff4/s7Oxbvmb//v0wm83o1avXLfd5/fXX8eijjwoeLxERka+x2Wwwm80wm80oKyvDtWvXsHDhQphMJgwfPrzK1zBXExFRXavNueSfPfDAA7h69SoyMzPrJMauXbtCo9HglVdewQcffICDBw/CYDAAAJo0aYKxY8ciPDy8Vse+OT//+VFdgYGBiI2NxZEjR+64r9VqrfBvFBYWYs+ePVi+fDnat2+Ppk2bAgD69euH1157rcJrCwoKcOjQoVtOcdaxY0c0btwY27dvr7B9y5YtCAgIQO/evVFaWoqnn34a58+fx6xZs7B8+XI89dRT2Lp1KxYuXFjtNldly5YtmDBhApo2bYpPP/0UEydOxObNmzF+/HjnBYp33nkHP/zwA9544w0sX74cDz/8MN57771KBXQiTldC5KPWrl2LwMBAPPLIIwCAIUOG4B//+AfWrFmDiRMnVvmaq1evAgAaNmzosjiJiIh81eHDhyvMwenwyiuvoFmzZlW+hrmaiIjqWm3OJf/MUWDOzc1FdHS04DGGhYVh6dKlmDZtGpYtW4Zly5ZBoVA4F79MTk6GXF67ktjGjRuxcePGKp9bvXo1OnfuXK3jhIeH49SpU3fc75lnnqm0LSgoCA8//DCmTp0KqbTq8asWiwXTp09HSUkJxo4de8vjDxo0CMuXL0dpaSnUajUA+3Q0ffv2hUqlwpkzZxAZGYn58+c75ya/7777cPLkyQqLYdeUzWbDhx9+iJ49e+LDDz90bm/SpAmeeeYZ/PDDD3jooYdw6NAh3H///ejfvz8AoFu3btBoNAgJCan1v03eiUVuIh9kNpuxefNmPPLIIzAajTAajfDz80O3bt2wZs0ajBs3DjKZrNLrHMnTsRI1ERER1Z22bdtizpw5AOwngkVFRfjxxx/x0UcfoaSkBH/9618rvYa5moiI6lJtzyVvpbpThtRmapHOnTtj165dOHLkCH7++WccOnQIx44dw+HDh7Fp0yb8+9//hp+fX42P26tXL0yYMKHK5xyjqoU0Z84ctG3bFhaLBbt378aKFSswatQovPzyy7d8TVlZGd544w3s3r0bs2fPRvv27W+57+DBg/Hxxx/j+++/R79+/XDixAlcunQJ7777LgCgdevW+PLLL2G1WnH58mX8/vvvSEtLw4ULF2o0ev3PLly4gKtXr+LFF1+scJwuXbpAq9Vi3759eOihh9CtWzd89dVXyM7ORq9evZCQkHDL/iffxiI3kQ/au3cvcnNzsX79+ipv8fn++++dV+Vv5rjCnpWVdcvbna5du4aQkJBaXxUnIiIiO39//0onpQ888ABKSkqwbNkyPP3005Vew1xNRER1qbbnkn+Wk5MDABXmj74dxwhjk8lU5fMmkwkajabSdqlUii5duqBLly4AgMLCQvzjH//Al19+ibVr1+Kpp56q1r9/s+Dg4NsWjasrOzu7Wmtk3Hvvvc5/Ly4uDmq1GosWLYJarcYLL7xQaf/CwkJMnDgRhw8fxsyZM/HEE0/c9viNGjVCx44dsW3bNvTr1w9btmxBdHR0hRHp//73v/HZZ5/h+vXrCA8PR9u2baFWq6HT6WrY6hsKCgoA2Iv4jov6N3N8RqZPn47IyEhs3rzZuV98fDxmzpyJNm3a1PrfJ+/Dv2yJfNDatWsRHR2NefPmVXpu8uTJ+Oqrr6r8w+S+++6DQqHADz/8gISEhCqP/eKLL6K0tNS5QAUREREJq3Xr1lizZg0yMjIqPcdcTUREdam255J/9ssvv6Bx48aIiIjAxYsXsXHjRowePdo5jYnFYgEA50hrx/acnJwqR0tfvXq1whzbU6ZMQUFBAVauXFlhv6CgIMyYMQPbtm1Denp69RpdBwoLC3H69GkMHjy4xq996aWXsHv3bixatAgPPfQQWrRo4XzuypUreO6555CRkYGFCxeiX79+1Trm4MGD8c4770Cn0+Hbb7/F8OHDnaPnt2zZgvnz5+PVV19FcnIyQkNDAQAvv/wyTp48WeXxHK91vI8ONy8oGRgYCMC+VkjXrl0rHSMoKAgAoFQqMW7cOIwbNw5ZWVn4/vvvsXjxYrz66qv8W4Yq4MKTRD4mNzcXP/30E/r37+9cDfvmR79+/bBv3z5cvny50msDAwORnJyMb775BidOnKj0/NatW2udqImIiKh6UlNTIZPJ0KhRo0rPMVcTEVFduZtzyZvt3bsXJ06ccI4wzsnJwb/+9S+cO3fOuc+VK1fg5+eH4OBgAED79u2h0WiwY8eOSsfT6/X4+eefcd999zm3NW7cGAcOHMCxY8cq7Z+Tk4OSkpIKxWFX+9e//oWysjKMHDmyxq+VyWSYNWsWzGYz5s6d69yu1+vxzDPPICcnBytWrKh2gRuAc0Hq//u//8O1a9cwaNAg53NHjhxBQEAAXnjhBWeBu7i4GEeOHLnl9GharRbAjbVCAPsUKjf/bdK0aVOEhYUhIyMD7du3dz4iIyOxYMEC/PrrrzAYDEhKSsKKFSsAAFFRURg1ahT69+9f4dhEAEdyE/mcDRs2wGw2Oxdt+LOhQ4fiyy+/xDfffIN777230vOvvPIKTp48ib/85S8YNWoUunXrBrPZjJ9++gnffPMNHnzwQYwZM6aum0FEROT19Hp9hZPzsrIy7NmzB1u2bMHIkSOdJ5p/xlxNRER1oSbnkoB9ChFHHnOsLZGSkoJVq1ahW7duzqlCYmNjERERgQULFsBsNuP69ev44osv8Mgjjzin1lKpVHj55Zcxb948Z+EzICAAly9fxqpVqyCVSjFu3DhnLM899xx2796NZ599Fk8++SS6desGtVqN3377DStWrEBMTAyGDRtWq37Iz8+vsngO2KdHiY2NrXJfi8WCvLw87Ny5E1u3bsVLL71U62lP4uLiMGjQIGzatAnbtm1D//79sWjRIvz++++YNGkSFApFhRiVSuVtp/YICgpCr1698OWXX6J9+/YVFriOjY3Ff//7X8yfPx+9evVCTk4Oli9fjtzcXOdo66qOFx8fjy+++AKNGzdGSEgI/vOf/8BgMDinlZHJZPjrX/+KmTNnQiaToVevXigqKsLixYuRnZ2Ntm3bws/PD23btsUnn3wChUKBli1b4uLFi9iwYQOSkpJq1XfkvSQ2m80mdhBE5Dr9+vWDVCrF1q1bb7nPo48+isLCQrz88suYOXMm9uzZg4YNGzqfLykpwRdffIHt27cjIyMDNpsNjRs3xvDhwzFixAgolUpXNIWIiMhrjR49GocOHaqwTaVS4Z577sGAAQPw/PPPQ6FQYP369XjzzTeZq4mIqM7V5Fyye/fuFfaTSCQICQlBo0aNMHjw4Eq56Ndff8W8efNw+vRpKBQKJCYmYtq0ac4RwQ47duzAl19+iXPnzqG4uBj169fHAw88gHHjxqFBgwYV9tXr9Vi6dCm+++47ZGZmoqysDNHR0UhKSsILL7wAf3//SvFnZGTg4Ycfxrx586osgvfu3RuZmZm3bL9Go0FqamqV+8rlcoSHh6NFixZ48skn0atXr1seBwAOHjyIp59+2nlR4M+uXbuGpKQkaLVa7NixA/369cOVK1eqPFZ0dDS+++672/57u3fvxoQJEzB9+vQK637YbDZ8/PHHWLduHa5fv46IiAgkJCSgRYsWzqlfmjdvjt69e6Nr166YP38+AOD333/H3LlzkZKSAq1Wi+TkZPj5+WHNmjUVYtm+fTuWLVuGtLQ0aDQadOzYEVOmTEHLli0B2N/Hf/zjH9izZw+uXbuGsLAw9OvXDy+//HKtFg4l78UiNxERERERERERERF5LM7JTUREREREREREREQei0VuIiIiIiIiIiIiIvJYLHITERERERERERERkcdikZuIiIiIiIiIiIiIPBaL3ERERERERERERETksVjkJiIiIiIiIiIiIiKPxSI3EREREREREREREXks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P+ZrIpIai9xEHeR0OnH77bfD6XTKHQoRERH9AOZrIiKi6Md8TURSY5GbqIN8Pi9efPFF+HxeuUMhIiKiH8B8TUREFP2Yr4lIaixyExEREREREREREZFiaeUOQC4qldwR9I7QdvaV7e1JKpUKVqsVKpWK+7MbeExKh/tSOlLuS/4+pNVX9idfz9JhvpYOj0vpcF9KR6p9yd+FtPrK/uRrWTrM19LhcSkd7kvpyPEZWyWEEN1/OiIiIiIiIiIiIiKi3sd2JURERERERERERESkWCxyExEREREREREREZFischNRERERERERERERIrFIjcRERERERERERERKRaL3ERERERERERERESkWCxyExEREREREREREZFischNRERERERERERERIrFIjcRERERERERERERKRaL3ERERERERERERESkWCxyx6gDBw7glltuwQUXXICLLroIv/71r1FbWyt3WIrm9/sxc+ZMPPTQQ3KHolh1dXX49a9/jbFjx2LMmDGYNWsWKisr5Q5Lkfbv348ZM2Zg9OjRuPjii/HEE0/A4/HIHZai1NbWYuLEidixY0d42d69e3H99dcjPz8fxcXFeOONN2SMkPoK5mxpMV93H/O1dJivu4/5mqIF87W0mK+lwZwtHebs7pM7Z7PIHYNcLhduv/125Ofn45NPPsGmTZtQV1eHhx9+WO7QFO1///d/8fnnn8sdhqLNnj0bjY2N+OCDD/DRRx9Bo9Hg0UcflTssxQkEArjrrrswadIk7Ny5E2+++SY++eQTrFq1Su7QFOOLL77AT3/6Uxw7diy8zGaz4c4778S1116LXbt2YcmSJXjyySexb98+GSOlWMecLT3m6+5jvpYG83X3MV9TtGC+lh7ztTSYs6XBnN190ZCzWeSOQeXl5Rg6dCjuvfde6PV6JCUl4ac//Sl27dold2iK9dlnn2HLli24/PLL5Q5Fsb766ivs3bsXTz31FOLj42GxWLB48WLMmzdP7tAUx2azoaqqCoFAAEIIAIBarYbJZJI5MmXYsGED5s2bh1/96lcRy7ds2YLExETMmDEDWq0W48ePx+TJk7Fu3TqZIqW+gDlbWszX3cd8LR3m6+5hvqZownwtLeZraTBnS4c5u3uiJWezyB2DBg0ahNWrV0Oj0YSXbd68Geeee66MUSlXTU0NHnnkEaxYsYJvcN2wb98+5Obm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CZFErrzySkybNg2vvfZaeFm/fv2QkJCAf/zjHxBCYP/+/REJsivWrFmDo0ePwul0YsmSJRg2bBhGjBiBoqIiOBwOrF69Gh6PB/X19Zg/fz5+9atfdSjJp6WlYcKECXjiiSdQVVUFl8uF5cuXw+/3tzrLc3smT56MPXv24J133oHP50NlZSXuvvtuPPXUUwCCfxwYDAao1WrY7Xb89re/hd1uDydZg8EAu90ePj0tJycHH374IVwuF6qqqvCXv/ylzee/4YYb8Je//AX79u0DAHz55ZeYOnUqNm3aBJVKhblz52LNmjXw+XxITU2FVqvt9AgBIiJSHubrSMzXREQUrZizIzFnE7WNRW4iCT388MMYNmxY+Lper8fixYvx3nvvoaCgAE899RRuuOGGbj3HZZddhrvvvhuXXHIJbDYbnnvuOajValgsFqxduxY7duzAJZdcgssuuwxqtRp/+tOfOvzYv/3tb5GdnY3rrrsOF154IQ4ePIiXXnoJiYmJnY4zMzMTq1evxmuvvYYLL7wQ11xzDQYNGhROwAsWLMCBAwdwwQUX4IorroDdbsePfvQjfPPNNwCAoqIi1NXVobCwEPX19Zg3bx4cDgcuuugi3HjjjZgyZUqbz3/FFVdg7ty5ePjhh1FQUIBf/vKXuPnmmzFz5kzo9Xr86U9/wocffoixY8eiuLgYqampmDdvXqe3k4iIlIf5+jTmayIiimbM2acxZxO1TSW60sWfiIiIiIiIiIiIiCgKcCQ3ERERERERERERESkWi9xEREREREREREREpFgschMRERERERERERGRYrHITURERERERERERESKxSI3ERERERERERERESkWi9xEREREREREREREpFgschMRERERERERERGRYrHITURERERERERERESKxSI3ERERERERERERESkWi9xEREREREREREREpFgschMRERERERERERGRYv1/UdTXuIQsLe4AAAAASUVORK5CYII="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_results(result_fwd)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.340779Z",
     "start_time": "2023-10-07T12:11:55.714877Z"
    }
   },
   "outputs": [],
   "source": [
    "# in this case, best model is model with 4 features, for all the three metrics"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.340861Z",
     "start_time": "2023-10-07T12:11:55.724238Z"
    }
   },
   "outputs": [],
   "source": [
    "def backward_stepwise_selection(data, target):\n",
    "    features =  [col for col in data.columns if not col == target]\n",
    "    total_features = []\n",
    "    list_r2 = []\n",
    "    list_adj_r2 = []\n",
    "    list_aic,list_bic = [],[]\n",
    "    len_features = []\n",
    "    while(len(features)>0):\n",
    "        features_with_constant = sm.add_constant(data[features])\n",
    "        model = sm.OLS(data[target], features_with_constant).fit()\n",
    "        max_p_value = model.pvalues[1:].max()\n",
    "        total_features.append(features.copy())\n",
    "        list_r2.append(model.rsquared)\n",
    "        list_aic.append(model.aic)\n",
    "        list_bic.append(model.bic)\n",
    "        len_features.append(len(total_features[-1]))\n",
    "        list_adj_r2.append(model.rsquared_adj)\n",
    "        excluded_feature = model.pvalues[1:].idxmax()\n",
    "        features.remove(excluded_feature)\n",
    "    return pd.DataFrame({'numb_features': len_features, 'R_squared':list_r2,\n",
    "                      'AIC':list_aic,'BIC':list_bic,'adj_r2':list_adj_r2,'features':total_features})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.340938Z",
     "start_time": "2023-10-07T12:11:55.729187Z"
    }
   },
   "outputs": [],
   "source": [
    "result_bwd = backward_stepwise_selection(data,'Y')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.341325Z",
     "start_time": "2023-10-07T12:11:55.749286Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "   numb_features  R_squared         AIC         BIC    adj_r2  \\\n0             10   0.982118  278.997310  307.654182  0.980109   \n1              9   0.982049  277.384221  303.435923  0.980254   \n2              8   0.981940  275.989785  299.436317  0.980352   \n3              7   0.981844  274.521879  295.363241  0.980462   \n4              6   0.981764  272.962058  291.198249  0.980587   \n5              5   0.980788  276.172489  291.803510  0.979766   \n6              4   0.980037  278.006463  291.032314  0.979197   \n7              3   0.977367  288.559405  298.980086  0.976660   \n8              2   0.922965  409.046022  416.861533  0.921376   \n9              1   0.819633  492.118982  497.329322  0.817793   \n\n                                    features  \n0  [X1, X2, X3, X4, X5, X6, X7, X8, X9, X10]  \n1      [X1, X2, X4, X5, X6, X7, X8, X9, X10]  \n2           [X1, X2, X4, X5, X6, X7, X8, X9]  \n3               [X1, X2, X4, X5, X6, X7, X9]  \n4                   [X1, X2, X5, X6, X7, X9]  \n5                       [X1, X2, X5, X6, X7]  \n6                           [X1, X2, X5, X7]  \n7                               [X1, X2, X5]  \n8                                   [X1, X2]  \n9                                       [X1]  ",
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>numb_features</th>\n      <th>R_squared</th>\n      <th>AIC</th>\n      <th>BIC</th>\n      <th>adj_r2</th>\n      <th>features</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>10</td>\n      <td>0.982118</td>\n      <td>278.997310</td>\n      <td>307.654182</td>\n      <td>0.980109</td>\n      <td>[X1, X2, X3, X4, X5, X6, X7, X8, X9, X10]</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>9</td>\n      <td>0.982049</td>\n      <td>277.384221</td>\n      <td>303.435923</td>\n      <td>0.980254</td>\n      <td>[X1, X2, X4, X5, X6, X7, X8, X9, X10]</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>8</td>\n      <td>0.981940</td>\n      <td>275.989785</td>\n      <td>299.436317</td>\n      <td>0.980352</td>\n      <td>[X1, X2, X4, X5, X6, X7, X8, X9]</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>7</td>\n      <td>0.981844</td>\n      <td>274.521879</td>\n      <td>295.363241</td>\n      <td>0.980462</td>\n      <td>[X1, X2, X4, X5, X6, X7, X9]</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>6</td>\n      <td>0.981764</td>\n      <td>272.962058</td>\n      <td>291.198249</td>\n      <td>0.980587</td>\n      <td>[X1, X2, X5, X6, X7, X9]</td>\n    </tr>\n    <tr>\n      <th>5</th>\n      <td>5</td>\n      <td>0.980788</td>\n      <td>276.172489</td>\n      <td>291.803510</td>\n      <td>0.979766</td>\n      <td>[X1, X2, X5, X6, X7]</td>\n    </tr>\n    <tr>\n      <th>6</th>\n      <td>4</td>\n      <td>0.980037</td>\n      <td>278.006463</td>\n      <td>291.032314</td>\n      <td>0.979197</td>\n      <td>[X1, X2, X5, X7]</td>\n    </tr>\n    <tr>\n      <th>7</th>\n      <td>3</td>\n      <td>0.977367</td>\n      <td>288.559405</td>\n      <td>298.980086</td>\n      <td>0.976660</td>\n      <td>[X1, X2, X5]</td>\n    </tr>\n    <tr>\n      <th>8</th>\n      <td>2</td>\n      <td>0.922965</td>\n      <td>409.046022</td>\n      <td>416.861533</td>\n      <td>0.921376</td>\n      <td>[X1, X2]</td>\n    </tr>\n    <tr>\n      <th>9</th>\n      <td>1</td>\n      <td>0.819633</td>\n      <td>492.118982</td>\n      <td>497.329322</td>\n      <td>0.817793</td>\n      <td>[X1]</td>\n    </tr>\n  </tbody>\n</table>\n</div>"
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "result_bwd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.409368Z",
     "start_time": "2023-10-07T12:11:55.755375Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 1800x400 with 3 Axes>",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABbkAAAGDCAYAAAAGbB1hAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAADQtklEQVR4nOzdeVyU1f4H8M/sDAyboCCGmoorkghKVmZaSLnmXpllqZVL5q1Mu+ZSXtMW7f7sZje3a94sU9MUNfWmtiOC+1rgiiL7NgPMDLP8/hhmFEEFnOGZ5fN+veal8zzPPPM9hwfOme+c5xyR2Ww2g4iIiIiIiIiIiIjIBYmFDoCIiIiIiIiIiIiIqL6Y5CYiIiIiIiIiIiIil8UkNxERERERERERERG5LCa5iYiIiIiIiIiIiMhlMclNRERERERERERERC6LSW4iIiIiIiIiIiIicllMchMRERERERERERGRy2KSm4iIiIiIiIiIiIhcFpPcREREREREREREROSymOQm8nBvvfUW2rVrh+XLl1fbt3nzZrRr1w5Xrlypst1kMmHjxo0YPXo04uLi0LVrVwwZMgRr166FXq9vqNCJiIjc1pgxY9CuXbsqj9jYWDz33HM4ePCg7Ti21UREJJTbfZacOXNmlTasffv26NKlCwYMGIDPPvsMOp3utue+uX27VXtn9emnn6Jdu3ZVtpWVleHTTz9Fv379EBUVhZiYGDz11FPYsGEDTCYTAODKlSvV2tuaHps3bwYA9OnT57bHTZ061fb+Nx/boUMHxMbG4umnn8bWrVvvWL/Jyck1vkfnzp3xyCOP4O2330ZeXl6V12RkZGDatGl46KGHbOVNSkq643vZQ58+fTBz5swGeS+imkiFDoCIhKPRaLBnzx60bdsWGzZswIQJEyASiW77mvLycrzyyis4duwYnn76aYwfPx4ymQzJycn4+OOP8fPPP+Pzzz+HXC5voFIQERG5p44dO2Lu3LkAAKPRiMLCQnzzzTcYN24cNm/ejIiIiBpfx7aaiIgcrTafJRs3box//etfACxfvqrVaqSkpODzzz/H77//jv/85z9QKBQOic9sNuOVV17BuXPnMGHCBLRr1w46nQ6//fYb5syZg7S0NMyaNQtNmjTBt99+a3tdbm4upkyZgokTJ+KRRx6xbW/evLnt/7169cKkSZNqfN+AgIAqz2881mAwoLCwEDt37sRbb72Fs2fPYsaMGXcsy5w5c9CpUyfb89LSUqSmpmLFihU4f/68Lf6ioiI8++yz8PPzw9///neoVCps2rQJL774Ir788kt07979ju9F5MqY5CbyYDt27IDRaMQ777yD5557Dr/99ht69ux529csXLgQhw8fxn//+1906dLFtv2hhx5Cx44dMW3aNKxbtw4vvPCCg6MnIiJybyqVqkpbCwAPPPAAevTogc2bN9/ygzHbaiIicrTafJaUy+XV2rFevXrhvvvuw5QpU7B69WpMnDjRIfEdOnQIycnJWLVqFR566CHb9kceeQRisRhfffUVXnrpJTRu3LhKjNaR4s2bN68Wu1WjRo1uua82x8bHxyMoKAirV6/GY489hpiYmNueo02bNtXO8eCDD8JgMGD58uVIT09HmzZtsGXLFuTn52PDhg0ICQkBYGn7Bw8ejFWrVjHJTW6P05UQebDvvvsOcXFxiIuLw7333ov169ff9viCggJ89913GDZsWI2N+hNPPIFx48YhNDTUQRETERF5NqVSCYVCccs7r9hWExFRQ6jrZ8kbxcfHIyoqqk6vqavc3FwAlhHdN3vmmWfwt7/97Y53MTvS1KlTIZfL76oOfH19qzwPCQnB2LFjbQluABCLxWjevDkuX75c4zkOHz6Mdu3a4ccff6yy/dy5c2jXrh1++OEHAJbk/1tvvYWHHnoInTp1Qo8ePfDWW2+hsLCwxvNap4GxTvNiNXPmTPTp06fKth9//BFDhw5F586d8eCDD+If//gHysrKbPt1Oh3effddPPzww4iMjMTjjz+O1atX36F2yBMxyU3koc6dO4djx45hyJAhAIChQ4di//79yM7OvuVrkpKSYDAY0Lt371se89Zbb+GJJ56we7xERESexmw2w2AwwGAwoKKiArm5uViyZAn0ej2GDRtW42vYVhMRkaPV57PkzR566CFkZWXh6tWrDomxe/fu8Pb2xuuvv46PPvoIycnJ0Gq1AICWLVtiwoQJCA4Orte5b2yfb37Ulp+fH6KionDo0KE7Hmsymaq8R3FxMfbu3YtVq1ahc+fOaNWqFQCgX79+ePPNN6u8tqioCAcPHrzlFGddu3ZFixYtsHPnzirbExMT4evriz59+qC8vBzPPfcczp07h7lz52LVqlV49tlnsX37dixZsqTWZa5JYmIiJk+e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hQsX2hKfvr6+yMjIwNq1ayEWizFx4kRbLC+++CJ+/PFHvPDCC3jmmWcQFxcHpVKJv/76C6tXr0ZERASGDh1ar3ooKCioMXkOWKZHiYqKqvFYo9GI/Px87N69G9u3b8crr7xS72lPunTpgkGDBmHr1q3YsWMH+vfvj6VLl+LixYt49dVXIZPJqsQol8tvO7WHv78/evfuja+//hqdO3eussB1VFQUvvnmGyxatAi9e/dGTk4OVq1ahby8PNto65rOFx0dja+++gotWrRAYGAg/vvf/0Kr1dqmlZFIJPjb3/6GOXPmQCKRoHfv3igpKcGyZcuQnZ2NTp06wcvLC506dcK//vUvyGQytGvXDhcuXMCWLVuQkJBQr7oj9yUym81moYMgoobTr18/iMVibN++/ZbHPPHEEyguLsZrr72GOXPmYO/evbjnnnts+8vKyvDVV19h586duHLlCsxmM1q0aIFhw4ZhxIgRkMvlDVEUIiIitzVmzBgcPHiwyjaFQoHmzZtjwIABGDduHGQyGTZv3oy3336bbTURETlcXT5L9ujRo8pxIpEIgYGBCA8Px+DBg6u1RadPn8bChQtx6tQpyGQyxMfHY+bMmbYRwVa7du3C119/jT///BOlpaVo0qQJHnroIUycOBFNmzatcqxGo8GKFSuwb98+XL16FRUVFWjWrBkSEhLw0ksvwcfHp1r8V65cwaOPPoqFCxfWmATv06cPrl69esvye3t748iRIzUeK5VKERwcjLZt2+KZZ55B7969b3keAEhOTsZzzz1n+1LgZrm5uUhISIBKpcKuXbvQr18/XLt2rcZzNWvWDPv27bvt+/3444+YPHkyZs2aVWXdD7PZjE8//RTfffcdCgsLERISgl69eqFt27a2qV/atGmDPn36oHv37li0aBEA4OLFi5g/fz5SU1OhUqkwfPhweHl5YePGjVVi2blzJ1auXIm0tDR4e3uja9eumDZtGtq1awfA8nP85z//ib179yI3NxdBQUHo168fXnvttXotHErui0luIiIiIiIiIiIiInJZnJObiIiIiIiIiIiIiFwWk9xERERERERERERE5LKY5CYiIiIiIiIiIiIil8UkNxERERERERERERG5LCa5iYiIiIiIiIiIiMhlMclNRERERERERERERC6LSW4iIiIiIiIiIiIiclmCJLl37tyJjh07Ijo6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ePFiDBs2zPu3UqnEihUr8O9//xujR4/Gs88+i9tuu61Lz3HttdfiwQcfxNVXXw2j0YiXXnoJUqkUWq0WGzduRF5eHq6++mpce+21kEqlePnll9v92H/84x+RnJyMm2++GVdddRVOnjyJ119/HXq9vsNxJiYmYv369Xj77bdx1VVX4aabbsLgwYO9CXjJkiU4ceIExowZg+uvvx4NDQ34yU9+glOnTgEAcnJyYDAYkJGRgbq6OixatAiNjY0YP3485syZgxtvvLHV57/++uuxcOFCLF68GKNHj8ajjz6KO++8E7Nnz4ZSqcTLL7+MTz75BNnZ2cjNzUXv3r2xaNGiDq8nEREFH+brC5iviYgokDFnX8CcTdQ6idCZLv5ERERERERERERERAGAI7mJiIiIiIiIiIiIKGixyE1EREREREREREREQYtFbiIiIiIiIiIiIiIKWixyExEREREREREREVHQYpGbiIiIiIiIiIiIiIIWi9xEREREREREREREFLRY5CYiIiIiIiIiIiKioMUiNxEREREREREREREFLRa5iYiIiIiIiIiIiChoschNREREREREREREREGLRW4iIiIiIiIiIiIiClr/D7pRro0nAuR9AAAAAElFTkSuQmCC"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_results(result_bwd)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (e) Now fit a lasso model to the simulated data, again using X, X2, ...,X10 as predictors. Use cross-validation to select the optimal value of λ. Create plots of the cross-validation error as a function of λ. Report the resulting coefficient estimates, and discuss the results obtained.\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.409963Z",
     "start_time": "2023-10-07T12:11:56.111489Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "         X1        X2        X3        X4         X5         X6         X7  \\\n0  1.624345  2.638498  4.285832  6.961671  11.308158  18.368354  29.836551   \n1 -0.611756  0.374246 -0.228947  0.140060  -0.085683   0.052417  -0.032066   \n2 -0.528172  0.278965 -0.147342  0.077822  -0.041103   0.021710  -0.011466   \n3 -1.072969  1.151262 -1.235268  1.325403  -1.422116   1.525886  -1.637228   \n4  0.865408  0.748930  0.648130  0.560897   0.485404   0.420073   0.363534   \n\n          X8         X9         X10  \n0  48.464863  78.723675  127.874436  \n1   0.019617  -0.012001    0.007342  \n2   0.006056  -0.003199    0.001689  \n3   1.756694  -1.884878    2.022415  \n4   0.314605   0.272262    0.235617  ",
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>X1</th>\n      <th>X2</th>\n      <th>X3</th>\n      <th>X4</th>\n      <th>X5</th>\n      <th>X6</th>\n      <th>X7</th>\n      <th>X8</th>\n      <th>X9</th>\n      <th>X10</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>1.624345</td>\n      <td>2.638498</td>\n      <td>4.285832</td>\n      <td>6.961671</td>\n      <td>11.308158</td>\n      <td>18.368354</td>\n      <td>29.836551</td>\n      <td>48.464863</td>\n      <td>78.723675</td>\n      <td>127.874436</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>-0.611756</td>\n      <td>0.374246</td>\n      <td>-0.228947</td>\n      <td>0.140060</td>\n      <td>-0.085683</td>\n      <td>0.052417</td>\n      <td>-0.032066</td>\n      <td>0.019617</td>\n      <td>-0.012001</td>\n      <td>0.007342</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>-0.528172</td>\n      <td>0.278965</td>\n      <td>-0.147342</td>\n      <td>0.077822</td>\n      <td>-0.041103</td>\n      <td>0.021710</td>\n      <td>-0.011466</td>\n      <td>0.006056</td>\n      <td>-0.003199</td>\n      <td>0.001689</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>-1.072969</td>\n      <td>1.151262</td>\n      <td>-1.235268</td>\n      <td>1.325403</td>\n      <td>-1.422116</td>\n      <td>1.525886</td>\n      <td>-1.637228</td>\n      <td>1.756694</td>\n      <td>-1.884878</td>\n      <td>2.022415</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>0.865408</td>\n      <td>0.748930</td>\n      <td>0.648130</td>\n      <td>0.560897</td>\n      <td>0.485404</td>\n      <td>0.420073</td>\n      <td>0.363534</td>\n      <td>0.314605</td>\n      <td>0.272262</td>\n      <td>0.235617</td>\n    </tr>\n  </tbody>\n</table>\n</div>"
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# predictors contain the dataframe for all the X's, response is stored in Y dataframe\n",
    "predictors.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.410052Z",
     "start_time": "2023-10-07T12:11:56.117962Z"
    }
   },
   "outputs": [],
   "source": [
    "alpha_list = 10**np.linspace(-5,3,100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.410132Z",
     "start_time": "2023-10-07T12:11:56.122416Z"
    }
   },
   "outputs": [],
   "source": [
    "def run_lasso(X,y,alpha_list):\n",
    "    \"\"\"\n",
    "    Input - \n",
    "       X - predictors\n",
    "       y - response\n",
    "       alpha_list - list of parameter for lasso - alpha\n",
    "    Returns - \n",
    "       coeff dict - dict of alpha - coeffs \n",
    "       cv_error_list - list of cross val errors\n",
    "    \"\"\"\n",
    "    coeff_dict = {}\n",
    "    cv_error_list = []\n",
    "    for alpha in alpha_list:\n",
    "        lasso = Lasso(alpha = alpha)\n",
    "        lasso.fit(X,y)\n",
    "        coeff_dict[alpha] = list(lasso.coef_)\n",
    "        cv_error_list.append(-np.mean(cross_val_score(lasso,X,y,cv = 10,scoring = 'neg_mean_squared_error')))\n",
    "    return coeff_dict,cv_error_list     "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.465705Z",
     "start_time": "2023-10-07T12:11:56.129564Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.958e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.647e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.487e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.218e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.580e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.821e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.219e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.622e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.565e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.719e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.406e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.957e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.647e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.486e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.218e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.580e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.821e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.219e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.622e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.565e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.718e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.406e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.957e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.646e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.486e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.217e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.580e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.821e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.219e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.622e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.565e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.718e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.406e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.957e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.646e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.486e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.217e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.579e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.821e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.218e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.622e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.565e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.718e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.405e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.957e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.645e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.485e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.217e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.579e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.821e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.218e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.623e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.565e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.717e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.405e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.956e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.644e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.485e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.216e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.579e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.821e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.218e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.623e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.565e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.717e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.404e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.956e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.643e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.484e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.216e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.578e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.821e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.218e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.623e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.564e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.716e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.404e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.955e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.642e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.483e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.215e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.578e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.821e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.218e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.623e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.564e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.715e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.403e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.954e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.641e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.483e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.214e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.577e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.820e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.217e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.623e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.564e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.714e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.402e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.953e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.639e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.482e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.213e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.576e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.820e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.217e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.623e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.564e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.713e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.401e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.952e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.637e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.480e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.212e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.576e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.820e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.217e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.623e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.563e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.712e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.400e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.951e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.635e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.479e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.211e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.574e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.820e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.216e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.623e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.563e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.710e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.399e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.949e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.632e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.477e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.209e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.573e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.820e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.215e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.623e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.562e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.708e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.397e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.947e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.629e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.475e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.207e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.572e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.820e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.215e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.623e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.561e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.705e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.395e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.945e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.625e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.472e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.205e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.570e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.820e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.214e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.624e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.560e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.702e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.392e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.942e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.620e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.469e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.202e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.567e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.820e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.213e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.624e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.559e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.699e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.389e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.939e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.615e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.465e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.199e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.564e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.820e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.211e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.624e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.558e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.694e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.385e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.935e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.608e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.460e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.194e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.561e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.820e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.210e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.625e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.556e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.688e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.381e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.929e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.600e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.454e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.189e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.556e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.820e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.207e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.625e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.554e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.682e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.375e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.923e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.592e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.446e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.182e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.551e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.819e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.205e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.625e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.552e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.673e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.367e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.915e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.582e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.438e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.174e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.545e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.819e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.202e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.626e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.549e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.663e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.358e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.906e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.571e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.427e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.165e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.537e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.818e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.198e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.626e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.545e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.650e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.347e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.894e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.558e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.413e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.152e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.527e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.818e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.193e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.626e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.541e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.634e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.333e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.879e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.544e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.397e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.137e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.514e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.816e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.187e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.627e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.535e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.614e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.315e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.860e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.528e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.376e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.117e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.499e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.815e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.179e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.626e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.527e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.589e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.292e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.836e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.511e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.350e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.093e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.479e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.813e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.170e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.626e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.518e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.553e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.261e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.805e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.493e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.317e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.060e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.453e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.809e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.157e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.624e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.506e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.508e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.221e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.765e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.475e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.275e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.019e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.420e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.804e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.141e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.621e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.490e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.448e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.167e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.712e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.458e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.223e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.963e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.377e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.797e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.120e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.616e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.470e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.365e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.092e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.641e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.441e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.161e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.886e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.318e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.787e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.092e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.606e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.445e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.246e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.987e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.556e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.427e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.070e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.779e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.219e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.771e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.054e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.589e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.409e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.065e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.850e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.434e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.417e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.946e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.725e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.091e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.747e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.987e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.584e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.359e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.768e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.766e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.249e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.364e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.767e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.645e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.890e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.709e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.911e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.549e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.289e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.447e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.724e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.953e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.310e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.526e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.614e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.548e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.650e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.805e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.488e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.186e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.192e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.730e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.725e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.281e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.355e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.565e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.216e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.554e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.626e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.407e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.029e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.962e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.815e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.519e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.265e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.167e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.268e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.086e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.385e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.369e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.394e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.766e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.765e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.753e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.291e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.102e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.959e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.028e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.911e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.256e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.216e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.389e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.608e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.690e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.692e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.043e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.091e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.728e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.687e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.723e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.202e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.040e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.393e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.435e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.161e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.637e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.776e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.086e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.476e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.402e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.539e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.156e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.843e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.384e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.238e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.285e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.591e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.459e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.091e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.223e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.092e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.396e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.122e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.626e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.358e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.015e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.025e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.228e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.221e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.020e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.877e+00, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.328e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.462e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.109e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.396e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.344e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.738e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.978e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.132e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.361e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.890e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.040e+00, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.509e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.147e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.052e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.113e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.364e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.457e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.764e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.962e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.142e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.726e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.462e+00, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.284e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.961e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.957e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.576e+00, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.466e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.148e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.478e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.781e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.898e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.022e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.345e+00, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.154e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.689e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.913e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.015e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.556e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.243e+00, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.222e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.589e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.631e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.351e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.182e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.067e+00, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.447e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.177e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.842e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.531e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.230e+00, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.481e+00, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.309e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.337e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.174e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.411e+00, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.450e+00, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.166e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.101e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.600e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.495e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.729e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.580e+00, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.053e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.010e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.125e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.782e+00, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.521e+00, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.867e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.312e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.440e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.428e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.465e+00, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.639e+00, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.390e+00, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.084e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.852e+00, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.958e+00, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.551e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.630e+00, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.359e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.071e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.026e-01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.353e+00, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.106e+00, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.050e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.764e+00, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.444e-01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.132e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.386e+00, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.240e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.445e+00, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.606e+00, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.372e+00, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.884e+00, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.997e+00, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.506e+00, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.944e-01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.029e+00, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.680e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.329e-01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.068e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.303e+00, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.150e+00, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.777e+00, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.376e+00, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.773e+00, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.788e+00, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.503e+00, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.537e+00, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.102e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.549e+00, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.824e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.774e+00, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.747e+00, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.218e+00, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.895e+00, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.969e+00, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.095e+00, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.201e+00, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.074e+00, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.758e+00, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.554e+00, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.531e-01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.151e+00, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.048e+00, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.929e+00, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.151e+00, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.357e+00, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.424e+00, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.755e+00, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.590e+00, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.745e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.590e+00, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.177e+00, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.561e+00, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.206e+00, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.251e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.445e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.766e+00, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.227e+00, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.069e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.309e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.901e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.525e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.205e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.413e+00, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.745e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.077e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.345e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.124e+00, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.612e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.088e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.133e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.012e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.374e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.466e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.500e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.615e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.879e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.238e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.153e+00, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.493e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.046e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.961e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.132e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.225e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.401e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.487e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.073e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.237e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.070e+00, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.865e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.985e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.174e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.161e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.254e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.249e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.277e-01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.154e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.055e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.599e+00, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.085e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.402e+00, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.946e-01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.204e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.791e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.836e+00, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.513e-01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.904e+00, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.049e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.130e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.761e+00, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.043e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.154e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.287e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.910e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.871e-01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.963e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.192e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.842e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.973e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.646e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.149e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.445e+00, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.026e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.176e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.749e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.704e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.870e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.470e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.701e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.258e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.085e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.705e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.749e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.899e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.322e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.082e+00, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.167e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.267e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.855e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.216e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.640e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.074e+02, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.232e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.258e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.386e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.447e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.188e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.209e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.830e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.032e+02, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.630e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.189e+02, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.387e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.399e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.473e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.808e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.469e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.395e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.102e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.070e+02, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.948e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.215e+02, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.917e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.900e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.869e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.798e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.766e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.755e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.074e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.037e+02, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.027e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.216e+02, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.109e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.742e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.782e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.207e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.900e+00, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.312e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.242e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.431e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.024e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.504e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.652e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.721e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.118e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.133e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.256e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.371e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.305e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.611e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.848e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.730e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.635e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.485e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.211e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.590e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.530e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.387e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.257e+01, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.008e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.504e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.819e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.484e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.284e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.515e+01, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.815e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.195e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.308e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.752e+01, tolerance: 4.278e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.544e+00, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.590e+01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.140e+01, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.554e+01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.961e+01, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.310e+01, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.915e+00, tolerance: 3.061e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.815e+01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.257e+01, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.175e+01, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.062e+00, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.366e-01, tolerance: 3.907e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.031e+00, tolerance: 4.127e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.884e-01, tolerance: 3.901e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.161e+00, tolerance: 3.321e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.096e+00, tolerance: 4.182e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.891e+00, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.297e+00, tolerance: 4.190e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.551e+00, tolerance: 4.153e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.488e+00, tolerance: 3.558e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n",
      "/opt/anaconda3/envs/py309/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.176e-01, tolerance: 4.073e-01\n",
      "  model = cd_fast.enet_coordinate_descent(\n"
     ]
    }
   ],
   "source": [
    "coeff_dict,cv_error_list = run_lasso(predictors,Y,alpha_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.466065Z",
     "start_time": "2023-10-07T12:11:58.658248Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 1600x800 with 1 Axes>",
      "image/png": "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+OGHa/r06br11lvl9/tbbXvNNddowoQJmjRpUsPXBx980MUVAwAAANa74ND+8jhsWr+nWku3llldDgAAQDMJE0CWlJToe9/7ni655BItW7ZMCxYs0NKlS/X444+32v7rr7/WvHnztGLFioavY489tourBgAAAKyX5nXqnPH9JEnPLdtucTUAAADNJUwAmZmZqU8++UQXXHCBDMNQWVmZ6urqlJmZ2aLttm3bVF5ernHjxllQKQAAAJB4Lpk8UIakJZtLtaGo2upyAAAAGjisLqCp5ORkSdJxxx2nwsJCTZkyRRdccEGLditXrpTP59MNN9yglStXKjs7W1dddZVmzZrV7msaxkGXDfQI9Z8FPhMA4oX7DBBfuRleHT8yS4vXF+uFz3foN6eNsrqkLsd9BkA8cY8BWmrr58EwE3CWar/fr/Lycv3sZz+T2+3WE0880Wz/q6++qtdff10/+clPNHLkSH366aeaO3eubr/9dp1xxhkWVQ0AAABYa9nmEs16dIlcdps+vulE5aS4rS4JAAAgMQPIel999ZUuuugiLV26VGlpaftte8stt6i4uFgPPPBAu65RXFypxP0TALqOYUhZWSl8JgDEDfcZIP5M09TVz3+hr3dV6pojB+v7M4ZaXVKX4j4DIJ64xwAt1X8uDiRhhmB//vnnuvnmm/Xaa6/J5XJJkgKBgJxOp7xeb7O2L730knw+X7PejoFAQG53+3/Da5rixgE0wWcCQLxxnwHiydClkwfpl6+v0T+/2Kkrj8iVx2m3uqgux30GQDxxjwHaL2EWoRk9erT8fr/uvfdeBQIB7dixQ3feeadmzZrVEEjWq6qq0q233qrVq1crEonovffe0+uvv67Zs2dbVD0AAACQGI4fma0BqW6V+0NauLrQ6nIAAAASJ4D0+Xx64okntH79ek2fPl2XX365jj76aN18882SpEmTJum1116TJF155ZW67LLL9KMf/UiTJk3SPffcozvvvFNTpkyx8i0AAAAAlnPYDM0+fKAk6bnlOxShmw4AALBYQs8B2RWKipi7AZCi8zZkZ6fwmQAQN9xngK5THQjprMc/VVVdWPeed4iOHZ5ldUldgvsMgHjiHgO0VP+5OJCE6QEJAAAAoHP4XA6dP6G/JOm5ZdstrgYAAPR2BJAAAABADzT78IGy2wx9vr1caworrS4HAAD0YgSQAAAA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9AkQ5pez++67XGCtI1LLGOS6EAj4k54EQ/5zKNS7HgpCIIgJBv2xC4NBTDDk5wmHMaEwhEP+tlAYk00nFMKEwv5+IhE/sBjxH4TD+XUCAQULRURERERE5JClAOQhyFpLz82/xLa2jHZTZCwwBhyn9xkDjvFv0XUccNzsuoMTcLH57Y6fP1vW5JYdF1wHjINxc9sdcB2M4/aWcf1lk1t23T71+WnG7V3Or7sBf1/ZNLJp+XXHwQQCftAuEOjdnk3DdfdYDmYDhkE/XzBX1k/Pt0tERERERERECkIByEOQMYbyH11H+oWVwCC9qvbW08rsLY8ZmNZvuX/de9kwMHlfefPPe2mHMfll07fsgPJ77LtvnkHSDMbfYb98uTy5/fUpk68mG7TLp+2Zx/SryxgzsD25QGGfNhjj5AOG7Lls8LebbNAQ4wfk9qxnCIyBmppSmpo6x9wdyiIiIiIiIiIyfikAeYgKzJxNYObs0W6GiIiIiIiIiIi8zOm+QxERERERERERESkYBSBFRERERERERESkYBSAFBERERERERERkYJRAFJEREREREREREQKRgFIERERERERERERKRgFIEVERERERERERKRgFIAUERERERERERGRglEAUkRERERERERERApGAUgREREREREREREpGAUgRUREREREREREpGAUgBQREREREREREZGCUQBSRERERERERERECkYBSBERERERERERESkYBSBFRERERERERESkYBSAFBERERERERERkYJRAFJEREREREREREQKRgFIERERERERERERKRgFIEVERERERERERKRgFIAUERERERERERGRglEAUkRERERERERERApGAUgREREREREREREpGAUgRUREREREREREpGAUgBQREREREREREZGCUQBSRERERERERERECiYw2g0YbcaMdgtExobce0HvCREpFJ1nRKTQdJ4RkULSOUZkoKG+H4y11ha2KSIiIiIiIiIiIvJypVuwRUREREREREREpGAUgBQREREREREREZGCUQBSRERERERERERECkYBSBERERERERERESkYBSBFRERERERERESkYBSAFBERERERERERkYJRAFJEREREREREREQKRgFIERERERERERERKRgFIEVERERERERERKRgFIAUERERERERERGRglEAUkRERERERERERApGAUgR2W9NTU0ce+yxo90METkEJZNJPvKRj/DWt76Viy++mGeffXa0myQi45zneXz2s5/lzW9+M5dffjktLS2j3SQROcTo+kVk3xSAFJH9ds0115BKpUa7GSJyCPrTn/7EjBkzuOWWW/j2t7/Nt771rdFukoiMc/feey/hcJjbbruNCy+8kBtuuGG0myQihxhdv4jsW2C0GyAi48ujjz5KZWUlVVVVo90UETkEvf71r8cYA/i9lkKh0Ci3SETGu6effppTTjkFgFNPPVUBSBEZdrp+Edk3BSBFZIA//vGP3Hzzzf3SbrjhBiorK/npT3/K9ddfz9133z1KrRORQ8HezjO1tbUAtLS0cPXVV/O5z31uNJonIoeQrq4uSkpKACguLqa7u3uUWyQih5rcOUbXLyJ7pwCkiAxw0UUXcdFFFw1I/8lPfsKb3/xmiouLR6FVInIo2dt5BmDTpk1cddVVfPSjH2Xp0qUj3DIROdSUlJTkg47d3d2UlpaOcotE5FCk6xeRl6YxIEVkyB599FFuvfVWLrvsMnbv3s373//+0W6SiBxidu3axRVXXMHXv/51zjrrrNFujogcAhYvXszDDz8MwAMPPMCSJUtGuUUicqjR9YvIvhlrrR3tRojI+HPmmWdy3333jXYzROQQ8+Uvf5n77ruP6dOnA1BZWcm11147yq0SkfEsk8nwhS98gY0bNxIMBvnBD35ATU3NaDdLRA4hun4R2TcFIEVeBlpaWrjkkkv4+te/zvHHHw9Ac3MzX/ziF1m2bBmu63Leeefx6U9/mkBAIzOIyP7TeUZERorONyJSaDrPiAw/3YItcoh76qmnuOSSS9iyZUu/9I9+9KMUFRXx4IMPcvvtt/Poo49y0003jU4jRWRc03lGREaKzjciUmg6z4gUhgKQIoewP//5z3zyk5/kYx/7WL/0zZs3s2zZMj71qU8RjUaZOnUqV155JbfccssotVRExiudZ0RkpOh8IyKFpvOMSOEoAClyCDvllFO49957ee1rX9svfe3atVRUVFBbW5tPmz17Njt27KCjo2Okmyki45jOMyIyUnS+EZFC03lGpHAUgBQ5hE2YMGHQMUm6u7uJRqP90nLrPT09I9I2ETk06DwjIiNF5xsRKTSdZ0QKRwFIkZehoqIiYrFYv7TcenFx8Wg0SUQOMTrPiMhI0flGRApN5xmRg6cApMjL0Ny5c2lra6OpqSmftn79eurq6igtLR3FlonIoULnGREZKTrfiEih6TwjcvAUgBR5GZoxYwbHHHMM3/zmN+nq6mLr1q1cf/31vPGNbxztponIIULnGREZKTrfiEih6TwjcvAUgBR5mbr22mtJp9OcddZZXHzxxZx66qlceeWVo90sETmE6DwjIiNF5xsRKTSdZ0QOjrHW2tFuhIiIiIiIiIiIiBya1ANSRERERERERERECkYBSBERERERERERESkYBSBFRERERERERESkYBSAFBERERERERERkYJRAFJEREREREREREQKRgFIERERERERERERKRgFIEVERERERERERKRgFIAUERERERERERGRglEAUkRERERERERERApGAUgRERERKbhbbrmF+fPnc9NNN/VLP/PMM/nTn/60z/Lbtm1j/vz5bNu2rUAtFBEREZFCUQBSRERERArulltu4S1veQs333wz6XR6tJsjIiIiIiNIAUgRERERKahHH32U5uZmPvOZz+B5Hnffffeg+S677DK+/e1vc+GFF7J48WIuvPBCnnzyyX557rzzTs455xwWL17MO9/5Tnbt2gWAtZYbbriBc889l6VLl3LsscfyiU98gng8XvDjExEREZGXpgCkiIiIiBTUr3/9ay6++GIikQiXXnopN954417z/u53v+Pqq69m2bJlvPKVr+SKK66gtbU1v33lypX8/ve/5/7776e9vZ3rrrsOgH/84x/cfPPN/PjHP+bJJ5/ktttu46GHHuLOO+8s+PGJiIiIyEtTAFJERERECmb79u08+OCDvPWtbwXg4osvZt26dSxbtmzQ/BdddBEnnHACoVCID3zgA0SjUf7zn//kt3/gAx+gtLSU8vJyTj31VLZs2QLAaaedxu23386MGTNoaWmhtbWVioqKfA9JERERERk9gdFugIiIiIgcum699VbS6TTnn39+Pi2dTnPjjTdy3HHHDcg/Y8aM/LIxhrq6Onbv3p1Pq6ioyC8Hg0EymQzg34L9gx/8gP/85z9UVVVx+OGHk0qlsNYO/0GJiIiIyH5RAFJERERECiKRSHD77bfzjW98g5NOOimfvmbNGt73vvexfv36AWX69lj0PI8dO3ZQX1+/z7quueYaduzYwX333UdJSQkA55577jAchYiIiIgcLN2CLSIiIiIFceedd2KM4dxzz6Wuri7/OO2005g3bx433XTTgDJ/+MMfWLFiBclkkuuuuw5rLWecccY+6+rq6iIcDuO6LolEghtvvJE1a9aQSqUKcGQiIiIisj8UgBQRERGRgrj11ls599xzCQaDA7Zdcskl/OUvf6G5ublf+nHHHcdXv/pVTjjhBB5//HFuvPFGSktL91nXRz/6UeLxOCeddBJnnnkmzz77LOeffz5r1qwZtuMRERERkQNjrAbGEREREZEx4LLLLuO4447jqquuGu2miIiIiMgwUg9IERERERERERERKRgFIEVERERERERERKRgdAu2iIiIiIiIiIiIFIx6QIqIiIiIiIiIiEjBKAApIiIiIiIiIiIiBaMApIiIiIiIiIiIiBSMApAiIiIiIiIiIiJSMApAioiIiIiIiIiISMEoACkiIiIiIiIiIiIFowCkiIiIiIiIiIiIFIwCkCIiIiIiIiIiIlIw/x8ARom5l1T75AAAAABJRU5ErkJggg=="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Analyzing the coefficients\n",
    "tmp = pd.DataFrame(coeff_dict).T\n",
    "tmp.index = alpha_list\n",
    "tmp.head()\n",
    "\n",
    "plt.figure(figsize = (16,8))\n",
    "sns.lineplot(data = tmp, dashes=False)\n",
    "plt.axhline(y = 0,linestyle = 'dashed',lw = 0.1,color = 'black')\n",
    "plt.xticks(alpha_list)\n",
    "plt.ylabel('Coeffients',fontsize = 14)\n",
    "plt.xlabel('Alpha')\n",
    "plt.legend(loc='right')\n",
    "plt.xscale('log')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.466303Z",
     "start_time": "2023-10-07T12:11:59.013088Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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a6P9hi9+7xKRstBRW1ur9vZ2NTc3q7y8XJK0f/9+VVdXq6Ag8eRoGKLBh4l7Z320ofXRhtZG+6VXyiaSTp06Veeff74efvhhdXV16fDhw3r88cd14403puotAACAhaV0yexjjz2mcDisK664QjfddJMuvfRS3XPPPal8CwAAYFEpPWW2vLxcjz322Iheg5nDyWPWtfXRhtZHG1ob7Td8ydwzm2EwegUAANKPs1cAAEBGEDoAAEBGEDoAAEBGEDoAAEBGEDoAAEBGEDoAAEBGEDoAAEBGEDoAAEBGEDoAAEBGEDoAAEBGEDrGmObmZl144YVml4FhCAaD+vu//3stX75cN910k9555x2zS8IZRKNRPfjgg7rlllt0xx13qLW11eySkCQ+d6lF6Bhjvv/97ysUCpldBobhueee09SpU7VmzRp997vf1SOPPGJ2STiDl19+WW63W2vXrtUNN9ygJ554wuySkCQ+d6mV0lNmkd02bdqkkpISlZaWml0KhuG6666Tre84x2g0KpfLZXJFOJNt27bpkksukSRdeumlhA4L4nOXWoSOUebZZ5/VU089NeSxJ554QiUlJfrJT36ixx9/XC+99JJJ1SERp2rDqqoqSVJra6seeOABPfTQQ2aUhyR0dXUpPz9fkpSXlye/329yRUhWvP343KUGoWOUWbp0qZYuXfqxx3/0ox/plltuUV5englVIRmnakNJOnjwoL7yla/ovvvu0wUXXJDhypCs/Pz8/qDh9/tVUFBgckUYDj53qcOcjjFi06ZN+s///E/ddtttampq0pe//GWzS0KSGhsbdffdd+s73/mOrrjiCrPLQQLmzZunjRs3SpJee+01zZ8/3+SKkCw+d6llMwzDMLsIZNbixYv16quvml0GkvStb31Lr776qqZMmSJJKikp0WOPPWZyVTidSCSiFStW6MCBA8rJydEPfvADlZeXm10WksDnLsUMZLWWlhbjyiuvNDZv3tz/WHNzs3H33Xcb559/vnHRRRcZ3/nOd4xQKGRilTgd2nD0oC2tjzY0F8MrWeztt9/WzTffrPr6+iGP33fffcrNzdXrr7+udevWadOmTVq9erU5ReK0aMPRg7a0PtowC5idenByzz33nHH55ZcbL774olFXV9efyg8ePGjU1dUZx48f77/2xRdfNC6//HKzSsUp0IajB21pfbRhdqCnI0tdcsklevnll3XttdcOeXzv3r0qLi7uXz4pSdOnT1dDQ4M6OzszXSZOgzYcPWhL66MNswOhI0tVVFTI6fz4ima/3y+v1zvksfifu7u7M1IbEkMbjh60pfXRhtmB0GExubm56unpGfJY/M/swWENtOHoQVtaH22YWYQOi6mtrVV7e7uam5v7H9u/f7+qq6vZeMgiaMPRg7a0PtowswgdFjN16lSdf/75evjhh9XV1aXDhw/r8ccf14033mh2aUgQbTh60JbWRxtmFqHDgh577DGFw2FdccUVuummm3TppZfqnnvuMbssJIE2HD1oS+ujDTOHHUkBAEBG0NMBAAAygtABAAAygtABAAAygtABAAAygtABAAAygtABAAAygtABAAAygtABAAAygtABAAAygtABAAAygtABAAAygtABAAAygtABAAAy4v8DXe5JJJ2Y4U8AAAAASUVORK5CYII="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Cross validation error\n",
    "plt.plot(alpha_list,cv_error_list)\n",
    "plt.xscale('log')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.466380Z",
     "start_time": "2023-10-07T12:11:59.133036Z"
    }
   },
   "outputs": [],
   "source": [
    "# FOr cv, we can use a built finction LassoCV"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LassoCV.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-10-07T12:12:00.466546Z",
     "start_time": "2023-10-07T12:11:59.138170Z"
    }
   },
   "outputs": [
    {
     "ename": "TypeError",
     "evalue": "__init__() got an unexpected keyword argument 'normalize'",
     "output_type": "error",
     "traceback": [
      "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m",
      "\u001B[0;31mTypeError\u001B[0m                                 Traceback (most recent call last)",
      "Cell \u001B[0;32mIn[57], line 5\u001B[0m\n\u001B[1;32m      1\u001B[0m \u001B[38;5;66;03m# Using lassoCV\u001B[39;00m\n\u001B[1;32m      2\u001B[0m \u001B[38;5;66;03m# we just need to pass number of alphas, it automatically chooses the list of alphas to be considerd for normalization\u001B[39;00m\n\u001B[1;32m      3\u001B[0m \u001B[38;5;66;03m# Since, we have only 100 observations, we are going to set a high number of iterations\u001B[39;00m\n\u001B[0;32m----> 5\u001B[0m lasso_cv \u001B[38;5;241m=\u001B[39m \u001B[43mLassoCV\u001B[49m\u001B[43m(\u001B[49m\u001B[43malphas\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43m \u001B[49m\u001B[43malpha_list\u001B[49m\u001B[43m,\u001B[49m\u001B[43mnormalize\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43m \u001B[49m\u001B[38;5;28;43;01mTrue\u001B[39;49;00m\u001B[43m,\u001B[49m\u001B[43mmax_iter\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43m \u001B[49m\u001B[38;5;241;43m100000\u001B[39;49m\u001B[43m)\u001B[49m\n\u001B[1;32m      6\u001B[0m lasso_cv\u001B[38;5;241m.\u001B[39mfit(predictors,Y)\n\u001B[1;32m      8\u001B[0m alphas_used \u001B[38;5;241m=\u001B[39m lasso_cv\u001B[38;5;241m.\u001B[39malphas_\n",
      "\u001B[0;31mTypeError\u001B[0m: __init__() got an unexpected keyword argument 'normalize'"
     ]
    }
   ],
   "source": [
    "# Using lassoCV\n",
    "# we just need to pass number of alphas, it automatically chooses the list of alphas to be considerd for normalization\n",
    "# Since, we have only 100 observations, we are going to set a high number of iterations\n",
    "\n",
    "lasso_cv = LassoCV(alphas = alpha_list,normalize = True,max_iter = 100000)\n",
    "lasso_cv.fit(predictors,Y)\n",
    "\n",
    "alphas_used = lasso_cv.alphas_\n",
    "mse_cv = np.mean(lasso_cv.mse_path_,axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.185883Z"
    }
   },
   "outputs": [],
   "source": [
    "plt.plot(alphas_used,mse_cv)\n",
    "plt.plot(lasso_cv.alpha_,min(mse_cv),marker = 'o',color = 'red',markersize = 8)\n",
    "plt.xlabel('Alpha')\n",
    "plt.ylabel('k fold MSE')\n",
    "plt.xscale('log')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.189746Z"
    }
   },
   "outputs": [],
   "source": [
    "# Model Selected \n",
    "\n",
    "print(pd.Series(np.hstack([lasso_cv.intercept_,lasso_cv.coef_]),index = ['Intercept']+['X' + str(i) for i in range(1,11)]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.192921Z"
    }
   },
   "outputs": [],
   "source": [
    "# this is our stimualted data - beta = [3,4,2,1]\n",
    "# our model predicted - [3.3,3.9,1.5,1.09]\n",
    "# this is very clase to the real coefficients"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (f) Now generate a response vector Y according to the model, and perform best subset selection and the lasso. Discuss the results obtained."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Y = β0 + β7X7 + eps"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.197106Z"
    }
   },
   "outputs": [],
   "source": [
    "X.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.201226Z"
    }
   },
   "outputs": [],
   "source": [
    "beta = [0.5,2]\n",
    "Y =  beta[0] + beta[1]*X**7 + np.random.randn(100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.204795Z"
    }
   },
   "outputs": [],
   "source": [
    "predictors.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.207664Z"
    }
   },
   "outputs": [],
   "source": [
    "result_subset = run_subset_selection(predictors,Y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.211503Z"
    }
   },
   "outputs": [],
   "source": [
    "result_subset.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.214638Z"
    }
   },
   "outputs": [],
   "source": [
    "plot_results(result_subset)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.220098Z"
    }
   },
   "outputs": [],
   "source": [
    "# we can see that the first feature choosen is X7. Lets see what are the coeff for it\n",
    "model = LinearRegression()\n",
    "model.fit(predictors['X7'].to_frame(),Y)\n",
    "print(model.intercept_,model.coef_)\n",
    "# we can see how close the predicted weights are that to the real ones"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.226647Z"
    }
   },
   "outputs": [],
   "source": [
    "# Lasso \n",
    "lasso_cv = LassoCV(alphas = alpha_list,normalize = True,max_iter = 100000)\n",
    "lasso_cv.fit(predictors,Y)\n",
    "\n",
    "alphas_used = lasso_cv.alphas_\n",
    "mse_cv = np.mean(lasso_cv.mse_path_,axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.229969Z"
    }
   },
   "outputs": [],
   "source": [
    "print(pd.Series(np.hstack([lasso_cv.intercept_,lasso_cv.coef_]),index = ['Intercept']+['X' + str(i) for i in range(1,11)]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.233120Z"
    }
   },
   "outputs": [],
   "source": [
    "# The weights of intercept and X7 here too is close to the original"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 9. In this exercise, we will predict the number of applications received using the other variables in the College data set.\n",
    " "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.236652Z"
    }
   },
   "outputs": [],
   "source": [
    "college = pd.read_csv(r'E:\\programming\\dataset\\Into_to_statstical_learning\\College.csv')\n",
    "print(college.shape)\n",
    "college.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.240346Z"
    }
   },
   "outputs": [],
   "source": [
    "college.drop('Unnamed: 0',axis = 1,inplace = True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (a) Split the data set into a training set and a test set"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.243537Z"
    }
   },
   "outputs": [],
   "source": [
    "# before splitting , lets convert the cat features into numerical by one hot encoding\n",
    "college['Private'] = college['Private'].map({'Yes':1,'No':0})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.246499Z"
    }
   },
   "outputs": [],
   "source": [
    "# now lets split into train and test\n",
    "X_train,X_test,y_train,y_test = train_test_split(college.drop('Apps',axis = 1),college['Apps'],test_size = 0.3,random_state = 0)\n",
    "print(X_train.shape,X_test.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (b) Fit a linear model using least squares on the training set, and report the test error obtained.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.249775Z"
    }
   },
   "outputs": [],
   "source": [
    "# we wil look at this at last\n",
    "results_dict = {}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.253921Z"
    }
   },
   "outputs": [],
   "source": [
    "lin_reg = LinearRegression()\n",
    "lin_reg.fit(X_train,y_train)\n",
    "pred = lin_reg.predict(X_test)\n",
    "print('Score is ',r2_score(y_test,pred))\n",
    "results_dict['Least_squares'] = r2_score(y_test,pred)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (c) Fit a ridge regression model on the training set, with λ chosen by cross-validation. Report the test error obtained.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.257689Z"
    }
   },
   "outputs": [],
   "source": [
    "alphas = 10**(np.linspace(-4,0,100))\n",
    "ridge_cv = RidgeCV(alphas = alphas,normalize=True,store_cv_values=True)\n",
    "ridge_cv.fit(X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.263009Z"
    }
   },
   "outputs": [],
   "source": [
    "print('valur of alpha choosen is ',ridge_cv.alpha_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.265682Z"
    }
   },
   "outputs": [],
   "source": [
    "mse_values = ridge_cv.cv_values_\n",
    "#mse_values.shape\n",
    "mse_errors = np.mean(mse_values,axis = 0)\n",
    "plt.plot(ridge_cv.alphas,mse_errors)\n",
    "plt.plot(ridge_cv.alpha_,np.min(mse_errors),marker = '*',markersize = 10,color = 'red')\n",
    "plt.xscale('log')\n",
    "plt.xlabel('Alphas')\n",
    "plt.ylabel('MSE with cv = 5')\n",
    "plt.title('Ridge Regression')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.269286Z"
    }
   },
   "outputs": [],
   "source": [
    "pred = ridge_cv.predict(X_test)\n",
    "print('R2 Score is ',r2_score(y_test,pred))\n",
    "results_dict['Ridge'] = r2_score(y_test,pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.272658Z"
    }
   },
   "outputs": [],
   "source": [
    "print(pd.Series(np.hstack([ridge_cv.intercept_,ridge_cv.coef_]),index = ['Intercept'] + list(college.drop('Apps',axis = 1).columns)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (d) Fit a lasso model on the training set, with λ chosen by crossvalidation. Report the test error obtained, along with the number of non-zero coefficient estimates."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.274713Z"
    }
   },
   "outputs": [],
   "source": [
    "lasso_cv = LassoCV(alphas = alphas,normalize = True,cv = 10)\n",
    "lasso_cv.fit(X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.276588Z"
    }
   },
   "outputs": [],
   "source": [
    "lasso_cv.alpha_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.277863Z"
    }
   },
   "outputs": [],
   "source": [
    "mse_lasso = np.mean(lasso_cv.mse_path_,axis = 1)\n",
    "plt.plot(lasso_cv.alphas,mse_lasso)\n",
    "plt.axhline(y = min(mse_lasso),linewidth = 0.5,linestyle = 'dashed',color = 'r')\n",
    "plt.plot(lasso_cv.alpha_,np.min(mse_lasso),marker = 'o',markersize = 10)\n",
    "plt.xscale('log')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.279914Z"
    }
   },
   "outputs": [],
   "source": [
    "# After lots of hair pulling i am still not ablet to get why this dot is not on the line, please if you can find it, \n",
    "# do leave an issue"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.281548Z"
    }
   },
   "outputs": [],
   "source": [
    "pred = lasso_cv.predict(X_test)\n",
    "print('R2 score is ',r2_score(y_test,pred))\n",
    "results_dict['Lasso'] = r2_score(y_test,pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.282941Z"
    }
   },
   "outputs": [],
   "source": [
    "print(pd.Series(np.hstack([lasso_cv.intercept_,lasso_cv.coef_]),index = ['Intercept'] + list(college.drop('Apps',axis = 1).columns)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.284271Z"
    }
   },
   "outputs": [],
   "source": [
    "# Three coefficients are shrunk to zero."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (e) Fit a PCR model on the training set, with M chosen by crossvalidation. Report the test error obtained, along with the value of M selected by cross-validation.\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.285621Z"
    }
   },
   "outputs": [],
   "source": [
    "num_components = np.arange(1,X_train.shape[1])\n",
    "cv_score_pcr = []\n",
    "\n",
    "for num_component in num_components:\n",
    "    scaler = StandardScaler()\n",
    "    X_scaled = scaler.fit_transform(X_train)\n",
    "    \n",
    "    pca = PCA(n_components=num_component)\n",
    "    X_pc = pca.fit_transform(X_scaled)\n",
    "    \n",
    "    lin_model = LinearRegression()\n",
    "    \n",
    "    cv_score_pcr.append(np.mean(cross_val_score(lin_model,X_pc,y_train,cv = 10)))\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.287112Z"
    }
   },
   "outputs": [],
   "source": [
    "plt.plot(num_components,cv_score_pcr,marker = 'o')\n",
    "plt.xlabel('Num of Components')\n",
    "plt.ylabel('CV with k = 10')\n",
    "plt.title('PCR')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.289122Z"
    }
   },
   "outputs": [],
   "source": [
    "# The max score is for num_comp = 17, through which we will have the same model as with simple least squares\n",
    "# but, lets see what score will we get when we choose num_components = 5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.291124Z"
    }
   },
   "outputs": [],
   "source": [
    "scaler = StandardScaler()\n",
    "X_scaled = scaler.fit_transform(X_train)\n",
    "    \n",
    "pca = PCA(n_components=5)\n",
    "X_pc = pca.fit_transform(X_scaled)\n",
    "    \n",
    "lin_model = LinearRegression()\n",
    "lin_model.fit(X_pc,y_train)\n",
    "\n",
    "# To find the predictions for X_test, we need to scale it \n",
    "X_test_scaled = scaler.transform(X_test)\n",
    "X_test_pc = pca.transform(X_test_scaled)\n",
    "\n",
    "pred = lin_model.predict(X_test_pc)\n",
    "print('Score for pcr with num_components = 5 is ',r2_score(y_test,pred))\n",
    "# that's not good at all, we will stich with num_components = 17, which will give sane model as least squares"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.293229Z"
    }
   },
   "outputs": [],
   "source": [
    "scaler = StandardScaler()\n",
    "X_scaled = scaler.fit_transform(X_train)\n",
    "    \n",
    "pca = PCA(n_components=17)\n",
    "X_pc = pca.fit_transform(X_scaled)\n",
    "    \n",
    "lin_model = LinearRegression()\n",
    "lin_model.fit(X_pc,y_train)\n",
    "\n",
    "# To find the predictions for X_test, we need to scale it \n",
    "X_test_scaled = scaler.transform(X_test)\n",
    "X_test_pc = pca.transform(X_test_scaled)\n",
    "\n",
    "pred = lin_model.predict(X_test_pc)\n",
    "print('Score for pcr with num_components = 17 is ',r2_score(y_test,pred))\n",
    "# that's not good at all, we will stich with num_components = 17, which will give sane model as least squares\n",
    "results_dict['PCR'] = r2_score(y_test,pred)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (f) Fit a PLS model on the training set, with M chosen by crossvalidation. Report the test error obtained, along with the value of M selected by cross-validation.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.294689Z"
    }
   },
   "outputs": [],
   "source": [
    "num_components"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.296352Z"
    }
   },
   "outputs": [],
   "source": [
    "cv_scores_pls = []\n",
    "for num_component in num_components:\n",
    "    pls = PLSRegression(n_components=num_component,scale = True)\n",
    "    cv_scores_pls.append(np.mean(cross_val_score(pls,X_train,y_train)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.298163Z"
    }
   },
   "outputs": [],
   "source": [
    "plt.plot(num_components,cv_scores_pls,marker = 'o')\n",
    "plt.xlabel('Num of components')\n",
    "plt.ylabel('Cv score - 5 fold')\n",
    "plt.title('PLS')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.299991Z"
    }
   },
   "outputs": [],
   "source": [
    "max(zip(cv_scores_pls,num_components))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.301498Z"
    }
   },
   "outputs": [],
   "source": [
    "# By corss validation we have num components as 9"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.302786Z"
    }
   },
   "outputs": [],
   "source": [
    "# lets see how this model performs\n",
    "pls = PLSRegression(n_components=9,scale = True)\n",
    "pls.fit(X_train,y_train)\n",
    "pred = pls.predict(X_test)\n",
    "print('Score for PLS is ',r2_score(y_test,pred))\n",
    "results_dict['PLS'] = r2_score(y_test,pred)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (g) Comment on the results obtained. How accurately can we predict the number of college applications received? Is there much difference among the test errors resulting from these five approaches?\n",
    " "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.304006Z"
    }
   },
   "outputs": [],
   "source": [
    "print(pd.Series(results_dict))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.305506Z"
    }
   },
   "outputs": [],
   "source": [
    "# We can see from above that all the methods have almost similar results"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 10. We have seen that as the number of features used in a model increases, the training error will necessarily decrease, but the test error may not. We will now explore this in a simulated data set\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (a) Generate a data set with p = 20 features, n = 1,000 observations, and an associated quantitative response vector generated according to the model. where β has some elements that are exactly equal to zero.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Y = Xβ + eps"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.307327Z"
    }
   },
   "outputs": [],
   "source": [
    "X = np.random.normal(size = (1000,20))\n",
    "print('Shape of X is ',X.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.309573Z"
    }
   },
   "outputs": [],
   "source": [
    "np.random.seed(3)\n",
    "\n",
    "# we are going to select beta in such a way that half of the value contain 0\n",
    "beta = np.random.randint(-10,10,10)\n",
    "beta = np.concatenate([beta,np.zeros(10)])\n",
    "np.random.shuffle(beta)\n",
    "beta"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.310985Z"
    }
   },
   "outputs": [],
   "source": [
    "beta = np.expand_dims(beta,axis = 1)\n",
    "beta.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.312779Z"
    }
   },
   "outputs": [],
   "source": [
    "np.random.seed(1)\n",
    "# Y = X*Beta + eps\n",
    "# shapees - (1000,1) = (1000,20)*(20,1) + (1000,1)\n",
    "Y = np.dot(X,beta) + np.random.normal(size = (1000,1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.313830Z"
    }
   },
   "outputs": [],
   "source": [
    "# Converting it into a dataframe\n",
    "data = pd.DataFrame(X,columns=['X_' + str(i) for i in range(1,21)])\n",
    "print(data.shape)\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (b) Split your data set into a training set containing 100 observations and a test set containing 900 observations.\n",
    " "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.314757Z"
    }
   },
   "outputs": [],
   "source": [
    "X_train,X_test,y_train,y_test = train_test_split(data,Y,test_size = 0.9,random_state = 1)\n",
    "print('Shape of X_train and X_test are respecitively ',X_train.shape,X_test.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (c) Perform best subset selection on the training set, and plot the training set MSE associated with the best model of each size.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.315660Z"
    }
   },
   "outputs": [],
   "source": [
    "def fit_linear_reg(X,Y):\n",
    "    #Fit linear regression model and return RSS and R squared values\n",
    "    X = sm.add_constant(X)\n",
    "    model = sm.OLS(Y,X).fit()\n",
    "    return model.ssr,model.rsquared,model\n",
    "    \n",
    "\n",
    "from tqdm import tnrange, tqdm_notebook\n",
    "from itertools import combinations\n",
    "\n",
    "def run_subset_selection_with_return_models(X,y):\n",
    "    #Initialization variables\n",
    "    RSS_list, R_squared_list, feature_list = [],[],[]\n",
    "    aic_list,bic_list,adj_r_squared_list = [],[],[]\n",
    "    numb_features = []\n",
    "    list_models = []\n",
    "    list_train_mse = []\n",
    "\n",
    "    #Looping over k = 1 to k = 11 features in X\n",
    "    for k in tnrange(1,len(X.columns) + 1, desc = 'Loop...'):\n",
    "        best_features = None\n",
    "        best_RSS = None\n",
    "        best_r2 = 0\n",
    "        best_model = None\n",
    "        \n",
    "        #Looping over all possible combinations: \n",
    "        for combo in combinations(X.columns,k):\n",
    "            tmp_result = fit_linear_reg(X[list(combo)],y)   #Store temp result  \n",
    "            r2 = tmp_result[1]\n",
    "            if r2 > best_r2:\n",
    "                best_features = combo\n",
    "                best_RSS = tmp_result[0]\n",
    "                best_r2 = tmp_result[1]\n",
    "                best_model = tmp_result[2]\n",
    "                \n",
    "        RSS_list.append(best_RSS)\n",
    "        R_squared_list.append(best_r2)\n",
    "        feature_list.append(best_features)\n",
    "        numb_features.append(len(best_features))\n",
    "        aic_list.append(best_model.aic)\n",
    "        bic_list.append(best_model.bic)\n",
    "        adj_r_squared_list.append(best_model.rsquared_adj)\n",
    "        list_models.append(best_model)\n",
    "        \n",
    "    #Store in DataFrame\n",
    "    df = pd.DataFrame({'numb_features': numb_features,'RSS': RSS_list, 'R_squared':R_squared_list,\n",
    "                      'AIC':aic_list,'BIC':bic_list,'adj_r2':adj_r_squared_list,'features':feature_list})\n",
    "    return df,list_models"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.316559Z"
    }
   },
   "outputs": [],
   "source": [
    "results_best_subset,best_subset_models = run_subset_selection_with_return_models(X_train.iloc[:,:12],y_train)\n",
    "results_best_subset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.317480Z"
    }
   },
   "outputs": [],
   "source": [
    "# IT was taking too much time on my computer to run best subset selection for p = 20, hence i reduced it to 12 features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.318607Z"
    }
   },
   "outputs": [],
   "source": [
    "# Adding test_mse \n",
    "test_mse = []\n",
    "for model,features in zip(best_subset_models,results_best_subset['features']):\n",
    "    pred = model.predict(sm.add_constant(X_test.iloc[:,:12][list(features)]))\n",
    "    test_mse.append(mean_squared_error(pred,y_test))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### d) Plot the test set MSE associated with the best model of each size."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.319651Z"
    }
   },
   "outputs": [],
   "source": [
    "plt.plot(results_best_subset['numb_features'],test_mse,marker = 'o')\n",
    "plt.plot((min(zip(test_mse,results_best_subset['numb_features'])))[1],np.min(test_mse),marker = 'o',markersize = 8)\n",
    "plt.xlabel('Number of Features')\n",
    "plt.ylabel('Test MSE')\n",
    "# Min mse is at num_features = 4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.320326Z"
    }
   },
   "outputs": [],
   "source": [
    "# Comparing the plot of test mse and train mse\n",
    "plt.plot(results_best_subset['numb_features'],test_mse,marker = 'o')\n",
    "plt.plot(results_best_subset['numb_features'],results_best_subset['RSS'] / len(X_train),marker = 'o',color = 'red')\n",
    "\n",
    "# we can see that train mse goes on decreasing with increase in number of features, however that is not the case with test mse\n",
    "plt.legend(['Test error','Train_error'])\n",
    "plt.xlabel('Number of features')\n",
    "plt.ylabel('Error')\n",
    "plt.title('Train vs Test MSE')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (e) For which model size does the test set MSE take on its minimum value? Comment on your results. \n",
    " "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.321191Z"
    }
   },
   "outputs": [],
   "source": [
    "# Test error is minimum for a model with four features\n",
    "print('The features of the moodel which has the lowest test mse are ',results_best_subset['features'].loc[3])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (f) How does the model at which the test set MSE is minimized compare to the true model used to generate the data? Comment on the coefficient values\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.322427Z"
    }
   },
   "outputs": [],
   "source": [
    "select_model = best_subset_models[3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.323314Z"
    }
   },
   "outputs": [],
   "source": [
    "# if we compare it to the original model\n",
    "list(beta[[0,6,7,10]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.324161Z"
    }
   },
   "outputs": [],
   "source": [
    "pd.DataFrame({'Predicted':select_model.params.values[1:],'True':list(beta[[0,6,7,10]])})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.324913Z"
    }
   },
   "outputs": [],
   "source": [
    "# We can see that the values  selected are very close to the true values"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### g) Create a plot displaying 'for a range of values of r, where βˆr j is the jth coefficient estimate for the best model containing r coefficients. Comment on what you observe. How does this compare to the test MSE plot from (d)?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "eq given in the question"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.325721Z"
    }
   },
   "outputs": [],
   "source": [
    "best_estimates = select_model.params.values[1:]\n",
    "l2_norms = []\n",
    "for model in best_subset_models:\n",
    "    params = model.params.values[1:]\n",
    "    l2_norms.append(np.linalg.norm(params))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.326460Z"
    }
   },
   "outputs": [],
   "source": [
    "plt.plot(results_best_subset['numb_features'],l2_norms,marker = 'o')\n",
    "plt.xlabel('Number of features')\n",
    "plt.ylabel('L2 Norm')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 11. We will now try to predict per capita crime rate in the Boston data set."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.327208Z"
    }
   },
   "outputs": [],
   "source": [
    "from sklearn.datasets import load_boston\n",
    "boston = load_boston()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.328018Z"
    }
   },
   "outputs": [],
   "source": [
    "data = pd.DataFrame(boston.data,columns = boston.feature_names)\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.328759Z"
    }
   },
   "outputs": [],
   "source": [
    "predictors = data.drop('CRIM',axis = 1)\n",
    "y = data['CRIM']\n",
    "predictors.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.329421Z"
    }
   },
   "outputs": [],
   "source": [
    "for feature in predictors.columns:\n",
    "    sns.scatterplot(predictors[feature],data['CRIM'])\n",
    "    plt.title(feature)\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (a) Try out some of the regression methods explored in this chapter, such as best subset selection, the lasso, ridge regression, and PCR. Present and discuss results for the approaches that you consider.\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.330202Z"
    }
   },
   "outputs": [],
   "source": [
    "results_dict = {}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Best subset selection"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.330899Z"
    }
   },
   "outputs": [],
   "source": [
    "# Insteading of running the algorithm, lets try it with hand selected features\n",
    "hand_selected_features = ['NOX','DIS','RAD','LSTAT']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.331625Z"
    }
   },
   "outputs": [],
   "source": [
    "lin_reg = LinearRegression()\n",
    "error = cross_val_score(lin_reg,predictors[hand_selected_features],y,cv = 5,scoring = 'neg_mean_squared_error')\n",
    "print('Error for best subset selection is ',-np.mean(error))\n",
    "results_dict['Best_subset'] = -np.mean(error)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "###  Least Squares"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.332357Z"
    }
   },
   "outputs": [],
   "source": [
    "lin_reg = LinearRegression()\n",
    "error = cross_val_score(lin_reg,predictors,y,cv = 5,scoring = 'neg_mean_squared_error')\n",
    "print('Error for best subset selection is ',-np.mean(error))\n",
    "results_dict['least_squares'] = -np.mean(error)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### RIdge Regression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.333071Z"
    }
   },
   "outputs": [],
   "source": [
    "ridgecv = RidgeCV(alphas = 10**np.linspace(-4,0,100),normalize = True,store_cv_values=True)\n",
    "ridgecv.fit(predictors,y)\n",
    "#lets look at the shape of cv values\n",
    "ridgecv.cv_values_.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.333815Z"
    }
   },
   "outputs": [],
   "source": [
    "print(\"The best score for ridge regression is \",ridgecv.score(predictors,y))\n",
    "results_dict['Ridge'] = ridgecv.score(predictors,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.334519Z"
    }
   },
   "outputs": [],
   "source": [
    "# Cv value are having a shape of (506,100), which means that for each alpha we have to take mean at axis = 0, t0\n",
    "# get mean cv values. 506 suggets that it is LOOCV\n",
    "mse_cv = np.mean(ridgecv.cv_values_,axis = 0)\n",
    "plt.plot(ridge_cv.alphas,mse_cv)\n",
    "plt.plot(ridge_cv.alpha_,np.min(mse_cv),marker = 'o',color = 'red',markersize = 8)\n",
    "plt.xscale('log')\n",
    "plt.xlabel('Alpha')\n",
    "plt.ylabel('CV ERROR MSE')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.335233Z"
    }
   },
   "outputs": [],
   "source": [
    "# We will use hstack, for horizontal stacing of numpy arrays, for vertical we would use vstack\n",
    "pd.Series(np.hstack([ridgecv.intercept_,ridgecv.coef_]),index = ['Intercept'] + list(predictors.columns))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Lasso"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.335980Z"
    }
   },
   "outputs": [],
   "source": [
    "lassocv = LassoCV(alphas = 10**np.linspace(-4,0,100),normalize = True,cv = 5)\n",
    "lassocv.fit(predictors,y)\n",
    "\n",
    "lassocv.mse_path_.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.336631Z"
    }
   },
   "outputs": [],
   "source": [
    "print(\"The best score for lasso is \",lassocv.score(predictors,y))\n",
    "results_dict['Lasso'] = lassocv.score(predictors,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.337376Z"
    }
   },
   "outputs": [],
   "source": [
    "# in this case we will take the mean at axis = 1\n",
    "mse_cv = np.mean(lassocv.mse_path_,axis = 1)\n",
    "plt.plot(lassocv.alphas_,mse_cv)\n",
    "plt.plot(lassocv.alpha_,np.min(mse_cv),marker = 'o',color = 'red',markersize = 8)\n",
    "plt.xscale('log')\n",
    "plt.xlabel('Alpha')\n",
    "plt.ylabel('CV ERROR MSE')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.338082Z"
    }
   },
   "outputs": [],
   "source": [
    "pd.Series(np.hstack([lassocv.intercept_,lassocv.coef_]),index = ['Intercept'] + list(predictors.columns))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.338885Z"
    }
   },
   "outputs": [],
   "source": [
    "# 8 coefficients have been reduced to 0 weights, GREAT!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (b) Propose a model (or set of models) that seem to perform well on this data set, and justify your answer. Make sure that you are evaluating model performance using validation set error, crossvalidation, or some other reasonable alternative, as opposed to using training error.\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.339791Z"
    }
   },
   "outputs": [],
   "source": [
    "pd.DataFrame(results_dict,index = ['Error']).T.sort_values(by = 'Error')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.340718Z"
    }
   },
   "outputs": [],
   "source": [
    "# We can see in the above dataframe, that ridge regression has the lease cv error followed by Ridge, best_subset, and least_squares"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### (c) Does your chosen model involve all of the features in the data set? Why or why not?\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.341983Z"
    }
   },
   "outputs": [],
   "source": [
    "# No the choosen model, does not contain all the features. In fact, 8 of the features, have 0 coefficients."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Hope you enjoyed the notebook :)\n",
    "# Keep learning"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "start_time": "2023-10-07T12:11:59.343136Z"
    }
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
